summaryrefslogtreecommitdiffstats
path: root/src/MCLogger.h
diff options
context:
space:
mode:
authorMattes D <github@xoft.cz>2013-11-27 09:23:17 +0100
committerMattes D <github@xoft.cz>2013-11-27 09:23:17 +0100
commit49760db89d94ede5d123d927141a6cd60dbaaf07 (patch)
tree6c6cf99e4cf3128311a93cd187947b502f3732a0 /src/MCLogger.h
parentcWorld::SpawnExperienceOrb() now returns the entity ID of the spawned orb. (diff)
parentFixed VC2008 compilation, normalized include paths. (diff)
downloadcuberite-49760db89d94ede5d123d927141a6cd60dbaaf07.tar
cuberite-49760db89d94ede5d123d927141a6cd60dbaaf07.tar.gz
cuberite-49760db89d94ede5d123d927141a6cd60dbaaf07.tar.bz2
cuberite-49760db89d94ede5d123d927141a6cd60dbaaf07.tar.lz
cuberite-49760db89d94ede5d123d927141a6cd60dbaaf07.tar.xz
cuberite-49760db89d94ede5d123d927141a6cd60dbaaf07.tar.zst
cuberite-49760db89d94ede5d123d927141a6cd60dbaaf07.zip
Diffstat (limited to 'src/MCLogger.h')
-rw-r--r--src/MCLogger.h84
1 files changed, 84 insertions, 0 deletions
diff --git a/src/MCLogger.h b/src/MCLogger.h
new file mode 100644
index 000000000..c949a4cdf
--- /dev/null
+++ b/src/MCLogger.h
@@ -0,0 +1,84 @@
+
+#pragma once
+
+
+
+
+class cLog;
+
+
+
+
+
+class cMCLogger // tolua_export
+{ // tolua_export
+public: // tolua_export
+ /// Creates a logger with the default filename, "logs/LOG_<timestamp>.log"
+ cMCLogger(void);
+
+ /// Creates a logger with the specified filename inside "logs" folder
+ cMCLogger(const AString & a_FileName); // tolua_export
+
+ ~cMCLogger(); // tolua_export
+
+ void Log(const char* a_Format, va_list a_ArgList);
+ void Info(const char* a_Format, va_list a_ArgList);
+ void Warn(const char* a_Format, va_list a_ArgList);
+ void Error(const char* a_Format, va_list a_ArgList);
+
+ void LogSimple(const char* a_Text, int a_LogType = 0 ); // tolua_export
+
+ static cMCLogger* GetInstance();
+private:
+ enum eColorScheme
+ {
+ csRegular,
+ csInfo,
+ csWarning,
+ csError,
+ } ;
+
+ cCriticalSection m_CriticalSection;
+ cLog * m_Log;
+ static cMCLogger * s_MCLogger;
+
+
+ /// Sets the specified color scheme in the terminal (TODO: if coloring available)
+ void SetColor(eColorScheme a_Scheme);
+
+ /// Resets the color back to whatever is the default in the terminal
+ void ResetColor(void);
+
+ /// Common initialization for all constructors, creates a logfile with the specified name and assigns s_MCLogger to this
+ void InitLog(const AString & a_FileName);
+}; // tolua_export
+
+
+
+
+
+extern void LOG(const char* a_Format, ...);
+extern void LOGINFO(const char* a_Format, ...);
+extern void LOGWARN(const char* a_Format, ...);
+extern void LOGERROR(const char* a_Format, ...);
+
+
+
+
+
+// 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
+
+
+
+