diff options
author | Mattes D <github@xoft.cz> | 2014-08-15 07:20:37 +0200 |
---|---|---|
committer | Mattes D <github@xoft.cz> | 2014-08-15 07:20:37 +0200 |
commit | e553d58eaf4dfdc56ebb1e3155f8b4dd2a33d7f1 (patch) | |
tree | 8a4f77b7471841910afbfdf7ebabbba68886c9b1 /src/Logger.h | |
parent | CheckBasicStyle checks the src folder as well. (diff) | |
parent | Removed an unneeded cast. (diff) | |
download | cuberite-e553d58eaf4dfdc56ebb1e3155f8b4dd2a33d7f1.tar cuberite-e553d58eaf4dfdc56ebb1e3155f8b4dd2a33d7f1.tar.gz cuberite-e553d58eaf4dfdc56ebb1e3155f8b4dd2a33d7f1.tar.bz2 cuberite-e553d58eaf4dfdc56ebb1e3155f8b4dd2a33d7f1.tar.lz cuberite-e553d58eaf4dfdc56ebb1e3155f8b4dd2a33d7f1.tar.xz cuberite-e553d58eaf4dfdc56ebb1e3155f8b4dd2a33d7f1.tar.zst cuberite-e553d58eaf4dfdc56ebb1e3155f8b4dd2a33d7f1.zip |
Diffstat (limited to 'src/Logger.h')
-rw-r--r-- | src/Logger.h | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/src/Logger.h b/src/Logger.h new file mode 100644 index 000000000..5e65de8a8 --- /dev/null +++ b/src/Logger.h @@ -0,0 +1,73 @@ + +#pragma once + + +class cLogger +{ +public: + + enum eLogLevel + { + llRegular, + llInfo, + llWarning, + llError, + }; + + + class cListener + { + public: + virtual void Log(AString a_Message, eLogLevel a_LogLevel) = 0; + + virtual ~cListener(){} + }; + + void Log (const char * a_Format, eLogLevel a_LogLevel, va_list a_ArgList) FORMATSTRING(2, 0); + + /** Logs the simple text message at the specified log level. */ + void LogSimple(AString a_Message, eLogLevel a_LogLevel = llRegular); + + void AttachListener(cListener * a_Listener); + void DetachListener(cListener * a_Listener); + + static cLogger & GetInstance(void); + // Must be called before calling GetInstance in a multithreaded context + static void InitiateMultithreading(); +private: + + cCriticalSection m_CriticalSection; + std::vector<cListener *> m_LogListeners; + +}; + + + + + + +extern void LOG(const char* a_Format, ...) FORMATSTRING(1, 2); +extern void LOGINFO(const char* a_Format, ...) FORMATSTRING(1, 2); +extern void LOGWARN(const char* a_Format, ...) FORMATSTRING(1, 2); +extern void LOGERROR(const char* a_Format, ...) FORMATSTRING(1, 2); + + + + + +// In debug builds, translate LOGD to LOG, otherwise leave it out altogether: +#ifdef _DEBUG + #define LOGD LOG +#else + #define LOGD(...) +#endif // _DEBUG + + + + + +#define LOGWARNING LOGWARN + + + + |