#ifndef LOG_H #define LOG_H enum LogLevelType { TraceLevel = 0, DebugLevel, InfoLevel, WarnLevel, ErrorLevel, FatalLevel }; #ifdef DEBUG #include class Logger { public: static LogLevelType LogLevel; static void Trace(char* msgfmt, ...); static void Debug(char* msgfmt, ...); static void Info(char* msgfmt, ...); static void Warn(char* msgfmt, ...); static void Error(char* msgfmt, ...); static void Fatal(char* msgfmt, ...); static void Log(LogLevelType logLevel, char* msgfmt, ...); private: static void Log(LogLevelType logLevel, char* msgfmt, va_list arsg); }; #else class Logger { public: static LogLevelType LogLevel; static void Trace(char* msgfmt, ...) {} static void Debug(char* msgfmt, ...) {} static void Info(char* msgfmt, ...) {} static void Warn(char* msgfmt, ...) {} static void Error(char* msgfmt, ...) {} static void Fatal(char* msgfmt, ...) {} static void Log(LogLevelType logLevel, char* msgfmt, ...) {} }; #endif #endif