summaryrefslogtreecommitdiff
path: root/i/marvin/src/log/log.cc
diff options
context:
space:
mode:
Diffstat (limited to 'i/marvin/src/log/log.cc')
-rw-r--r--i/marvin/src/log/log.cc50
1 files changed, 18 insertions, 32 deletions
diff --git a/i/marvin/src/log/log.cc b/i/marvin/src/log/log.cc
index dd2227b..6a4f685 100644
--- a/i/marvin/src/log/log.cc
+++ b/i/marvin/src/log/log.cc
@@ -25,11 +25,10 @@
#include "log.hh"
#include "config/config.hh"
+#include "logger.hh"
#include <string>
-std::ostream * Log::ostLog_ = &std::cout;
-
/// Constructeur.
Log::Log (const char *module, const char *instance)
: module_ (module), instance_ (instance)
@@ -40,16 +39,30 @@ Log::Log (const char *module, const char *instance)
std::string defaultLvl = config.get<std::string>("log.level.default",
"info");
level_ = toLevel (defaultLvl);
-
// Get private level if exist
- level_ = toLevel (config.get<std::string>(std::string ("log.level.") + module, defaultLvl));
+ level_ = toLevel (config.get<std::string>
+ (std::string ("log.level.") + module_, defaultLvl));
+
+ // Create the null logger
+ loggerNull_ = Logger::create ("null");
+ // Create the real logger
+ logger_ = Logger::create (config.get<std::string>
+ (std::string ("log.logger.") + module_,
+ config.get<std::string>
+ (std::string ("log.logger.default"), "stdout")));
}
/// Crée un nouveau LogMessage.
LogMessage
Log::operator() (const char *msg, Level level/*info*/) const
{
- return LogMessage (*this, msg, level);
+ // Check level
+ if (level <= getLevel())
+ // Use real logger
+ return LogMessage (*this, *logger_, msg, level);
+ else
+ // Use null logger
+ return LogMessage (*this, *loggerNull_, msg, level);
}
/// Traduit le niveau de log.
@@ -109,30 +122,3 @@ Log::toLevelMask (Log::Level level)
return static_cast <Level> ((level - 1) | level);
}
-/// Récupère le niveau de log
-Log::Level
-Log::getLevel(void) const
-{
- return level_;
-}
-
-/// Set le niveau de log
-void
-Log::setLevel(Level level)
-{
- level_ = level;
-}
-
-/// Récupère le ostream où sera envoyé les logs
-std::ostream *
-Log::getOstLog(void)
-{
- return ostLog_;
-}
-
-/// Set le ostream où sera envoyé les logs
-void
-Log::setOstLog(std::ostream * ost)
-{
- ostLog_ = ost;
-}