Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #pragma once
00023
00024 #ifndef __KARTO_LOGGER__
00025 #define __KARTO_LOGGER__
00026
00027 #include <OpenKarto/String.h>
00028 #include <OpenKarto/Event.h>
00029
00030 namespace karto
00031 {
00032
00034
00035
00039
00043 enum LogLevel
00044 {
00048 LOG_NONE = 0,
00049
00053 LOG_FATAL = 1,
00054
00058 LOG_ERROR = 3,
00059
00063 LOG_WARNING = 4,
00064
00068 LOG_INFORMATION = 6,
00069
00073 LOG_DEBUG = 7
00074 };
00075
00084 extern KARTO_EXPORT void Log(LogLevel level, const karto::String& rMessage);
00085
00090 extern KARTO_EXPORT LogLevel GetLogLevel();
00091
00096 extern KARTO_EXPORT void SetLogLevel(LogLevel level);
00097
00098
00103 void InitializeLogger(const karto::String& rApplicationName = "Karto", const String& rLogLevel = "NONE");
00104
00109 void TerminateLogger();
00110
00111
00115
00119 class KARTO_EXPORT LogMessageArguments : public EventArguments
00120 {
00121 public:
00127 LogMessageArguments(LogLevel level, const karto::String& rMessage)
00128 : m_Level(level)
00129 , m_Message(rMessage)
00130 {
00131 }
00132
00136 virtual ~LogMessageArguments()
00137 {
00138 }
00139
00140 public:
00145 const LogLevel GetLevel() const
00146 {
00147 return m_Level;
00148 }
00149
00154 const karto::String& GetMessage() const
00155 {
00156 return m_Message;
00157 }
00158
00159 private:
00160 LogLevel m_Level;
00161 karto::String m_Message;
00162 };
00163
00164 #ifdef WIN32
00165 EXPORT_KARTO_EVENT(KARTO_EXPORT, LogMessageArguments)
00166 #endif
00167
00171 extern KARTO_EXPORT BasicEvent<LogMessageArguments> LogMessage;
00172
00174
00175 }
00176
00177 #endif // __KARTO_LOGGER__
00178