From 1819d52491c978059099a94c2a4b21f4a9a604a0 Mon Sep 17 00:00:00 2001 From: dufourj Date: Sat, 11 Mar 2006 17:20:06 +0000 Subject: Marvin : - ajout du fichier de config et du lien ; - classe de Log avec des niveaux changeables de puis le fichier de config. --- i/marvin/src/log/Makefile.defs | 2 +- i/marvin/src/log/log.cc | 25 +++++++++++++++++++++++-- i/marvin/src/log/log.hh | 2 +- i/marvin/src/log/test_log.cc | 37 ++++++++++++++++++++++++------------- 4 files changed, 49 insertions(+), 17 deletions(-) (limited to 'i/marvin/src/log') diff --git a/i/marvin/src/log/Makefile.defs b/i/marvin/src/log/Makefile.defs index d160eb1..ab5e1e5 100644 --- a/i/marvin/src/log/Makefile.defs +++ b/i/marvin/src/log/Makefile.defs @@ -1,5 +1,5 @@ PROGRAMS += test_log -log_OBJECTS = log.o log_message.o +log_OBJECTS = log.o log_message.o $(config_OBJECTS) test_log_OBJECTS = test_log.o $(log_OBJECTS) diff --git a/i/marvin/src/log/log.cc b/i/marvin/src/log/log.cc index 5b700a7..ba5faa8 100644 --- a/i/marvin/src/log/log.cc +++ b/i/marvin/src/log/log.cc @@ -24,12 +24,33 @@ // }}} #include "log.hh" +#include "config/config.hh" + +#include + std::ostream * Log::ostLog_ = &std::cout; /// Constructeur. -Log::Log (const char *module, Level level, const char *instance) - : module_ (module), instance_ (instance), level_(level) +Log::Log (const char *module, const char *instance) + : module_ (module), instance_ (instance) { + // Get Config + Config &config = Config::getInstance (); + // Get default level log + level_ = toLevel (config.get("log.level.default")); + + // Get private level if exist + if (module) + { + try + { + level_ = toLevel (config.get(std::string ("log.level.") + module)); + } + catch (std::exception &) + { + // Do nothing if it does not exist + } + } } /// Crée un nouveau LogMessage. diff --git a/i/marvin/src/log/log.hh b/i/marvin/src/log/log.hh index b05d3a0..2713166 100644 --- a/i/marvin/src/log/log.hh +++ b/i/marvin/src/log/log.hh @@ -51,7 +51,7 @@ class Log static std::ostream * ostLog_; public: /// Constructeur. - Log (const char *module, Level level = info, const char *instance = 0); + Log (const char *module, const char *instance = 0); /// Crée un nouveau LogMessage. LogMessage operator() (const char *msg, Level level = info) const; /// Récupère le module. diff --git a/i/marvin/src/log/test_log.cc b/i/marvin/src/log/test_log.cc index 11bfe7c..75b36f7 100644 --- a/i/marvin/src/log/test_log.cc +++ b/i/marvin/src/log/test_log.cc @@ -23,22 +23,33 @@ // // }}} #include "log.hh" + +#include "config/config.hh" #include int -main (void) +main (int argc, char **argv) { - std::ofstream chier("/tmp/testLog"); - Log::setOstLog(&chier); - Log log ("main"); - Log log2 ("Chier"); - log ("foo") << "bar" << 4 << "foobar" << 5.6; - log ("bar", Log::error) << "foo" << 5; - log ("bar", Log::info) << "Chier" << 3 << "Info" << 2.3; - log ("bar", Log::debug) << "Partout" << 3 << "Debug" << 2.3; - log2 ("foo") << "bar" << 4 << "foobar" << 5.6; - log2 ("bar", Log::error) << "foo" << 5; - log2 ("bar", Log::info) << "Chier" << 3 << "Info" << 2.3; - log2 ("bar", Log::debug) << "Partout" << 3 << "Debug" << 2.3; + try + { + Config config (argc, argv); + std::ofstream chier("/tmp/testLog"); + Log::setOstLog(&chier); + Log log ("main"); + Log log2 ("Chier"); + log ("foo") << "bar" << 4 << "[Default] foobar" << 5.6; + log ("bar", Log::error) << "[Error] foo" << 5; + log ("bar", Log::info) << "[Info] Chier" << 3 << "Info" << 2.3; + log ("bar", Log::debug) << "[Debug] Partout" << 3 << "Debug" << 2.3; + log2 ("foo") << "bar" << 4 << "[Default] foobar" << 5.6; + log2 ("bar", Log::error) << "[Error] foo" << 5; + log2 ("bar", Log::info) << "[Info] Chier" << 3 << "Info" << 2.3; + log2 ("bar", Log::debug) << "[Debug] Partout" << 3 << "Debug" << 2.3; + } + catch (const std::exception &e) + { + std::cerr << e.what () << std::endl; + return 1; + } return 0; } -- cgit v1.2.3