From d9a38657d3f97a2543ea1528732cc6abe5e525c9 Mon Sep 17 00:00:00 2001 From: dufourj Date: Tue, 14 Mar 2006 01:47:30 +0000 Subject: Log : - Découpage en différents types de logger ; - Création d'un logger null utilisé pour les messages non traités ; - Création d'un logger stdout pour la sortie sur stdout. TODO : - Créer un logger pour fichier ; - Créer un logger en ram. --- i/marvin/src/log/log.cc | 50 ++++++++++++++++++------------------------------- 1 file changed, 18 insertions(+), 32 deletions(-) (limited to 'i/marvin/src/log/log.cc') 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 -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("log.level.default", "info"); level_ = toLevel (defaultLvl); - // Get private level if exist - level_ = toLevel (config.get(std::string ("log.level.") + module, defaultLvl)); + level_ = toLevel (config.get + (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 ("log.logger.") + module_, + config.get + (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 - 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; -} -- cgit v1.2.3