summaryrefslogtreecommitdiffstats
path: root/src/Common/Logger.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/Common/Logger.cpp')
-rw-r--r--src/Common/Logger.cpp22
1 files changed, 15 insertions, 7 deletions
diff --git a/src/Common/Logger.cpp b/src/Common/Logger.cpp
index 22748d1..199688d 100644
--- a/src/Common/Logger.cpp
+++ b/src/Common/Logger.cpp
@@ -26,7 +26,7 @@ namespace Common {
std::list<Logger*> Logger::loggers;
-void Logger::logfv(MessageLevel level, const char *format, va_list ap) {
+void Logger::logfv(MessageCategory category, MessageLevel level, const char *format, va_list ap) {
int size = 100;
char *buf = (char*)std::malloc(size);
@@ -39,7 +39,7 @@ void Logger::logfv(MessageLevel level, const char *format, va_list ap) {
va_end(ap2);
if(n > -1 && n < size) {
- log(level, buf);
+ log(category, level, buf);
std::free(buf);
return;
}
@@ -54,18 +54,26 @@ void Logger::logfv(MessageLevel level, const char *format, va_list ap) {
}
-void Logger::log(MessageLevel level, const std::string &message) {
+void Logger::log(MessageCategory category, MessageLevel level, const std::string &message) {
for(std::list<Logger*>::iterator logger = loggers.begin(); logger != loggers.end(); ++logger) {
- if((*logger)->getLevel() >= level)
- (*logger)->logMessage(level, message);
+ if((*logger)->getLevel() >= level && (*logger)->getCategory() == category)
+ (*logger)->logMessage(category, level, message);
}
}
+void Logger::logf(MessageCategory category, MessageLevel level, const char *format, ...) {
+ va_list ap;
+
+ va_start(ap, format);
+ logfv(category, level, format, ap);
+ va_end(ap);
+}
+
void Logger::logf(MessageLevel level, const char *format, ...) {
va_list ap;
va_start(ap, format);
- logfv(level, format, ap);
+ logfv(ALL, level, format, ap);
va_end(ap);
}
@@ -73,7 +81,7 @@ void Logger::logf(const char *format, ...) {
va_list ap;
va_start(ap, format);
- logfv(DEFAULT, format, ap);
+ logfv(ALL, DEFAULT, format, ap);
va_end(ap);
}