summaryrefslogtreecommitdiff
path: root/i/marvin/src/log
diff options
context:
space:
mode:
authordufourj2006-03-11 17:20:06 +0000
committerdufourj2006-03-11 17:20:06 +0000
commit1819d52491c978059099a94c2a4b21f4a9a604a0 (patch)
treed0e5156206d72e3145f89708e1650f411315b19c /i/marvin/src/log
parent15cd6ebf2ae12c601d6f6aef8337aa16effeacc2 (diff)
Marvin :
- ajout du fichier de config et du lien ; - classe de Log avec des niveaux changeables de puis le fichier de config.
Diffstat (limited to 'i/marvin/src/log')
-rw-r--r--i/marvin/src/log/Makefile.defs2
-rw-r--r--i/marvin/src/log/log.cc25
-rw-r--r--i/marvin/src/log/log.hh2
-rw-r--r--i/marvin/src/log/test_log.cc37
4 files changed, 49 insertions, 17 deletions
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 <string>
+
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<std::string>("log.level.default"));
+
+ // Get private level if exist
+ if (module)
+ {
+ try
+ {
+ level_ = toLevel (config.get<std::string>(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 <fstream>
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;
}