summaryrefslogtreecommitdiff
path: root/2004
diff options
context:
space:
mode:
authorschodet2004-05-19 13:16:30 +0000
committerschodet2004-05-19 13:16:30 +0000
commitc9417076f87f2951774fdb91af5b68db205b41bd (patch)
treecef339e711a05a5b05a95782d0224e55c8363256 /2004
parent43cbee25345ca2a8c6e4a950ad8d5e91375d0527 (diff)
plein de truc.
Diffstat (limited to '2004')
-rw-r--r--2004/i/nono/src/logger/log.cc12
-rw-r--r--2004/i/nono/src/logger/log.h11
-rw-r--r--2004/i/nono/src/logger/logger.cc57
-rw-r--r--2004/i/nono/src/logger/logger.h17
4 files changed, 60 insertions, 37 deletions
diff --git a/2004/i/nono/src/logger/log.cc b/2004/i/nono/src/logger/log.cc
index 89f4f91..6780068 100644
--- a/2004/i/nono/src/logger/log.cc
+++ b/2004/i/nono/src/logger/log.cc
@@ -25,19 +25,17 @@
#include "log.h"
#include "logger.h"
-Logger Log::logger_;
-
/// Constructeur.
-Log::Log (const std::string &module)
+Log::Log (const char *module)
: std::ostream ((std::streambuf *) this),
- module_ (module),
+ module_ (module), instance_ (0),
curLevel_ (info)
{
init ();
}
/// Constructeur.
-Log::Log (const std::string &module, const std::string &instance)
+Log::Log (const char *module, const char *instance)
: std::ostream ((std::streambuf *) this),
module_ (module), instance_ (instance),
curLevel_ (info)
@@ -135,7 +133,7 @@ Log::overflow (int c)
if (c == '\n')
{
if (curLevel_ & levelMask_)
- logger_.log (module_, instance_, curLevel_, buffer_);
+ Logger::getInstance ().log (module_, instance_, curLevel_, buffer_);
buffer_.erase ();
}
else
@@ -149,6 +147,6 @@ Log::overflow (int c)
void
Log::init (void)
{
- levelMask_ = logger_.getLevel (module_);
+ levelMask_ = Logger::getInstance ().getLevel (module_);
}
diff --git a/2004/i/nono/src/logger/log.h b/2004/i/nono/src/logger/log.h
index 2d919cd..d49e834 100644
--- a/2004/i/nono/src/logger/log.h
+++ b/2004/i/nono/src/logger/log.h
@@ -28,8 +28,6 @@
#include <string>
#include <iostream>
-class Logger;
-
class Log : protected std::streambuf, public std::ostream
{
public:
@@ -45,17 +43,16 @@ class Log : protected std::streambuf, public std::ostream
levelReserved = 0xffff
};
private:
- std::string module_;
- std::string instance_;
+ const char *module_;
+ const char *instance_;
std::string buffer_;
- static Logger logger_;
Level levelMask_;
Level curLevel_;
public:
/// Constructeur.
- Log (const std::string &module);
+ Log (const char *module);
/// Constructeur.
- Log (const std::string &module, const std::string &instance);
+ Log (const char *module, const char *instance);
/// Paramètre le niveau de log pour la prochaine sortie.
Log &operator() (Level level);
/// Traduit le niveau de log.
diff --git a/2004/i/nono/src/logger/logger.cc b/2004/i/nono/src/logger/logger.cc
index 66ecfae..ac3dff7 100644
--- a/2004/i/nono/src/logger/logger.cc
+++ b/2004/i/nono/src/logger/logger.cc
@@ -25,6 +25,40 @@
#include "logger.h"
#include "config/config.h"
+/// Destructeur.
+Logger::~Logger (void)
+{
+}
+
+/// Récupère le log level pour un module.
+Log::Level
+Logger::getLevel (const char *module) const
+{
+ LogLevels::const_iterator i;
+ i = logLevels_.find (module);
+ if (i != logLevels_.end ())
+ return i->second;
+ else
+ return Log::none;
+}
+
+/// Loggue un message.
+void
+Logger::log (const char *module, const char *instance,
+ Log::Level level, const std::string &msg)
+{
+ buffer_ += module;
+ buffer_ += ": ";
+ if (instance)
+ {
+ buffer_ += instance;
+ buffer_ += ": ";
+ }
+ buffer_ += msg;
+ buffer_ += '\n';
+ flush ();
+}
+
/// Constructeur par default.
Logger::Logger (void)
{
@@ -53,26 +87,11 @@ Logger::Logger (void)
}
}
-/// Récupère le log level pour un module.
-Log::Level
-Logger::getLevel (const std::string &module) const
-{
- LogLevels::const_iterator i;
- i = logLevels_.find (module);
- if (i != logLevels_.end ())
- return i->second;
- else
- return Log::none;
-}
-
-/// Loggue un message.
+/// Vide le buffer.
void
-Logger::log (const std::string &module, const std::string &instance,
- Log::Level level, const std::string &msg)
+Logger::flush (void)
{
- std::cout << module << ": ";
- if (!instance.empty ())
- std::cout << instance << ": ";
- std::cout << msg << std::endl;
+ std::cout << buffer_;
+ buffer_.erase ();
}
diff --git a/2004/i/nono/src/logger/logger.h b/2004/i/nono/src/logger/logger.h
index 6cc7f7d..cc2dfd8 100644
--- a/2004/i/nono/src/logger/logger.h
+++ b/2004/i/nono/src/logger/logger.h
@@ -33,14 +33,23 @@ class Logger
{
typedef std::map<std::string, Log::Level> LogLevels;
LogLevels logLevels_;
+ std::string buffer_;
public:
- /// Constructeur par default.
- Logger (void);
+ /// Destructeur.
+ ~Logger (void);
/// Récupère le log level pour un module.
- Log::Level getLevel (const std::string &module) const;
+ Log::Level getLevel (const char *module) const;
/// Loggue un message.
- void log (const std::string &module, const std::string &instance,
+ void log (const char *module, const char *instance,
Log::Level level, const std::string &msg);
+ /// Récupère l'instance du Logger.
+ static Logger &getInstance (void)
+ { static Logger instance; return instance; }
+ private:
+ /// Constructeur par default.
+ Logger (void);
+ /// Vide le buffer.
+ void flush (void);
};
#endif // logger_h