summaryrefslogtreecommitdiffstats
path: root/src/Common/Logger.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/Common/Logger.h')
-rw-r--r--src/Common/Logger.h26
1 files changed, 21 insertions, 5 deletions
diff --git a/src/Common/Logger.h b/src/Common/Logger.h
index f1cd33d..ba14347 100644
--- a/src/Common/Logger.h
+++ b/src/Common/Logger.h
@@ -33,24 +33,32 @@ class Logger {
enum MessageLevel {
CRITICAL, ERROR, WARNING, DEFAULT, VERBOSE, DEBUG
};
+ enum MessageCategory {
+ ALL, SYSTEM, NETWORK, DAEMON, USER, DISK, PROGRAM, GENERAL
+ };
private:
static std::list<Logger*> loggers;
+ MessageCategory category;
MessageLevel level;
- static void logfv(MessageLevel level, const char *format, va_list ap);
+ static void logfv(MessageCategory category, MessageLevel level, const char *format, va_list ap);
protected:
- Logger() : level(DEFAULT) {}
+ Logger() : level(DEFAULT), category(ALL) {}
- virtual void logMessage(MessageLevel level, const std::string &message) = 0;
+ virtual void logMessage(MessageCategory category, MessageLevel level, const std::string &message) = 0;
public:
- static void log(MessageLevel level, const std::string &message);
+ static void log(MessageCategory category, MessageLevel level, const std::string &message);
+ static void log(MessageLevel level, const std::string &message) {
+ log(ALL, level, message);
+ }
static void log(const std::string &message) {
- log(DEFAULT, message);
+ log(ALL, DEFAULT, message);
}
+ static void logf(MessageCategory category, MessageLevel level, const char *format, ...);
static void logf(MessageLevel level, const char *format, ...);
static void logf(const char *format, ...);
@@ -64,6 +72,14 @@ class Logger {
loggers.erase(it);
}
+ MessageCategory getCategory() const {
+ return category;
+ }
+
+ void setCategory(MessageCategory newCategory) {
+ category = newCategory;
+ }
+
MessageLevel getLevel() const {
return level;
}