summaryrefslogtreecommitdiff
path: root/src/SimpleLogger.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2008-05-15 15:48:41 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2008-05-15 15:48:41 +0000
commitd76e423884058d7eb7e397bc24b695d9e3c1a3f7 (patch)
tree7552ad196edf24f2d3da99c4a7b080e6f2e6e754 /src/SimpleLogger.cc
parent2e8e926c1003a09663b1d16d7f4be8b45771cc9f (diff)
2008-05-16 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Added --log-level option to specify log level. Log messages under the specified level are not output. Default value is `debug'. * src/HelpItemFactory.cc * src/LogFactory.cc * src/LogFactory.h * src/Logger.h * src/OptionHandlerFactory.cc * src/SimpleLogger.cc * src/SimpleLogger.h * src/main.cc * src/option_processing.cc * src/prefs.h * src/usage_text.h
Diffstat (limited to 'src/SimpleLogger.cc')
-rw-r--r--src/SimpleLogger.cc41
1 files changed, 25 insertions, 16 deletions
diff --git a/src/SimpleLogger.cc b/src/SimpleLogger.cc
index 40a4b4fa..537cf24f 100644
--- a/src/SimpleLogger.cc
+++ b/src/SimpleLogger.cc
@@ -56,19 +56,23 @@ namespace aria2 {
#endif
#define WRITE_LOG(LEVEL, MSG) \
+if(LEVEL >= _logLevel){\
va_list ap;\
va_start(ap, MSG);\
-writeFile(Logger::LEVEL, MSG, ap);\
+writeFile(LEVEL, MSG, ap);\
flush();\
-va_end(ap);
+va_end(ap);\
+}
#define WRITE_LOG_EX(LEVEL, MSG, EX) \
+if(LEVEL >= _logLevel) {\
va_list ap;\
va_start(ap, EX);\
-writeFile(Logger::LEVEL, MSG, ap);\
-writeStackTrace(Logger::LEVEL, EX);\
+writeFile(LEVEL, MSG, ap);\
+writeStackTrace(LEVEL, EX);\
flush();\
-va_end(ap);
+va_end(ap);\
+}
const std::string SimpleLogger::DEBUG("DEBUG");
@@ -80,7 +84,7 @@ const std::string SimpleLogger::ERROR("ERROR");
const std::string SimpleLogger::INFO("INFO");
-SimpleLogger::SimpleLogger():stdoutField(0) {}
+SimpleLogger::SimpleLogger():stdoutField(0), _logLevel(Logger::DEBUG) {}
SimpleLogger::~SimpleLogger() {
closeFile();
@@ -184,43 +188,48 @@ void SimpleLogger::flush()
}
void SimpleLogger::debug(const char* msg, ...) {
- WRITE_LOG(DEBUG, msg);
+ WRITE_LOG(Logger::DEBUG, msg);
}
void SimpleLogger::debug(const char* msg, const Exception& e, ...) {
- WRITE_LOG_EX(DEBUG, msg, e);
+ WRITE_LOG_EX(Logger::DEBUG, msg, e);
}
void SimpleLogger::info(const char* msg, ...) {
- WRITE_LOG(INFO, msg);
+ WRITE_LOG(Logger::INFO, msg);
}
void SimpleLogger::info(const char* msg, const Exception& e, ...) {
- WRITE_LOG_EX(INFO, msg, e);
+ WRITE_LOG_EX(Logger::INFO, msg, e);
}
void SimpleLogger::notice(const char* msg, ...) {
- WRITE_LOG(NOTICE, msg);
+ WRITE_LOG(Logger::NOTICE, msg);
}
void SimpleLogger::notice(const char* msg, const Exception& e, ...) {
- WRITE_LOG_EX(INFO, msg, e);
+ WRITE_LOG_EX(Logger::INFO, msg, e);
}
void SimpleLogger::warn(const char* msg, ...) {
- WRITE_LOG(WARN, msg);
+ WRITE_LOG(Logger::WARN, msg);
}
void SimpleLogger::warn(const char* msg, const Exception& e, ...) {
- WRITE_LOG_EX(WARN, msg, e);
+ WRITE_LOG_EX(Logger::WARN, msg, e);
}
void SimpleLogger::error(const char* msg, ...) {
- WRITE_LOG(ERROR, msg);
+ WRITE_LOG(Logger::ERROR, msg);
}
void SimpleLogger::error(const char* msg, const Exception& e, ...) {
- WRITE_LOG_EX(ERROR, msg, e);
+ WRITE_LOG_EX(Logger::ERROR, msg, e);
+}
+
+void SimpleLogger::setLogLevel(Logger::LEVEL level)
+{
+ _logLevel = level;
}
} // namespace aria2