tibia-client/src/framework/util/logger.h

38 lines
1.2 KiB
C
Raw Normal View History

#ifndef LOGGER_H
#define LOGGER_H
2011-07-13 23:12:36 +02:00
#include "makestring.h"
2011-07-13 23:12:36 +02:00
enum LogLevel {
LogDebug = 0,
LogInfo,
LogWarning,
LogError,
LogFatal
};
2011-07-17 02:13:53 +02:00
void log(LogLevel level, const std::string& message, std::string prettyFunction = "");
2011-07-13 23:12:36 +02:00
// specialized logging
#define logDebug(...) log(LogDebug, make_string(__VA_ARGS__))
#define logInfo(...) log(LogInfo, make_string(__VA_ARGS__))
#define logWarning(...) log(LogWarning, make_string(__VA_ARGS__))
#define logError(...) log(LogError, make_string(__VA_ARGS__))
#define logFatal(...) log(LogFatal, make_string(__VA_ARGS__))
2011-07-13 23:12:36 +02:00
#define logTrace() log(LogDebug, "", __PRETTY_FUNCTION__)
#define logTraceDebug(...) log(LogDebug, make_string(__VA_ARGS__), __PRETTY_FUNCTION__)
#define logTraceInfo(...) log(LogInfo, make_string(__VA_ARGS__), __PRETTY_FUNCTION__)
#define logTraceWarning(...) log(LogWarning, make_string(__VA_ARGS__), __PRETTY_FUNCTION__)
#define logTraceError(...) log(LogError, make_string(__VA_ARGS__), __PRETTY_FUNCTION__)
2011-07-13 23:12:36 +02:00
// dump utility
struct Dump {
~Dump() { logDebug(s.str().c_str()); }
2011-07-13 23:12:36 +02:00
template<class T>
Dump& operator<<(const T& v) { s << v << " "; return *this; }
std::ostringstream s;
};
2011-04-07 02:58:36 +02:00
#define dump Dump()
#endif // LOGGER_H