00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036 #ifndef INCL_LOG
00037 #define INCL_LOG
00038
00040 #include "base/fscapi.h"
00041 #include "base/util/StringBuffer.h"
00042
00044 #define LOG_ERROR "ERROR"
00045
00046 #define LOG_INFO "INFO"
00047
00048 #define LOG_DEBUG "DEBUG"
00049
00051 #define LOG_NAME "synclog.txt"
00052 #include "base/globalsdef.h"
00053
00054 BEGIN_NAMESPACE
00055
00059 typedef enum {
00064 LOG_LEVEL_NONE = 0,
00070 LOG_LEVEL_INFO = 1,
00074 LOG_LEVEL_DEBUG = 2,
00075 } LogLevel;
00076
00080 class Log {
00081
00082 private:
00083
00087 LogLevel logLevel;
00088
00092 static Log *logger;
00093
00094 public:
00095
00096 Log() : logLevel(LOG_LEVEL_INFO) {}
00097 virtual ~Log() {}
00098
00105 static Log &instance();
00106
00115 static void setLogger(Log *logger) { Log::logger = logger; }
00116
00118 # define LOG_HAVE_SET_LOGGER 1
00119
00124 virtual void setLogPath(const char* configLogPath) = 0;
00125
00130 virtual void setLogName(const char* configLogName) = 0;
00131
00136 virtual void reset(const char* title = NULL) = 0;
00137
00138 virtual void setLevel(LogLevel level) { logLevel = level; }
00139 virtual LogLevel getLevel() { return logLevel; }
00140 virtual bool isLoggable(LogLevel level) { return level <= logLevel; }
00141
00172 virtual void error(const char* msg, ...) = 0;
00173 virtual void info(const char* msg, ...) = 0;
00174 virtual void developer(const char* msg, ...) = 0;
00175 virtual void debug(const char* msg, ...) = 0;
00176
00178 # define LOG_HAVE_DEVELOPER 1
00179
00187 virtual void setPrefix(const char *prefix) {
00188
00189 prefix = NULL;
00190 }
00191
00195 virtual size_t getLogSize() = 0;
00196 };
00197
00198 # define LOG Log::instance()
00199
00200
00201 END_NAMESPACE
00202
00204 #endif