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
00077 class Log {
00078
00079 private:
00080
00084 LogLevel logLevel;
00085
00089 static Log *logger;
00090
00091 public:
00092
00093 Log() : logLevel(LOG_LEVEL_INFO) {}
00094 virtual ~Log() {}
00095
00102 static Log &instance();
00103
00112 static void setLogger(Log *logger) { Log::logger = logger; }
00113
00115 # define LOG_HAVE_SET_LOGGER 1
00116
00121 virtual void setLogPath(const char* configLogPath) = 0;
00122
00127 virtual void setLogName(const char* configLogName) = 0;
00128
00133 virtual void reset(const char* title = NULL) = 0;
00134
00135 virtual void setLevel(LogLevel level) { logLevel = level; }
00136 virtual LogLevel getLevel() { return logLevel; }
00137 virtual bool isLoggable(LogLevel level) { return level <= logLevel; }
00138
00169 virtual void error(const char* msg, ...) = 0;
00170 virtual void info(const char* msg, ...) = 0;
00171 virtual void developer(const char* msg, ...) = 0;
00172 virtual void debug(const char* msg, ...) = 0;
00173
00175 # define LOG_HAVE_DEVELOPER 1
00176
00184 virtual void setPrefix(const char *prefix) {
00185
00186 prefix = NULL;
00187 }
00188
00192 virtual size_t getLogSize() = 0;
00193 };
00194
00195 # define LOG Log::instance()
00196
00197
00198 END_NAMESPACE
00199
00201 #endif