4 * Created on: 2014. 2. 7.
15 //----------------------------------------------------------------------
17 #define MAX_PRINT_LEN 2048
18 #define DEFAULT_TIMESTAMP_FORMAT "%Y%m%d-%H%M%S"
20 #ifdef _DISABLE_LOGGER
21 # define ERROR(fmt,...) {}
22 # define WARNING(fmt,...) {}
23 # define INFO(fmt,...) {}
24 # define DEBUG(fmt,...) {}
25 # define LOG(fmt,...) {}
26 # define LINESTAMP(fmt,...) {}
27 # define HEXLOG(fmt,...) {}
28 # define DUMMY(fmt,...) {}
30 # define ERROR(fmt,...) { Logger::instance()->log(Logger::ERROR, fmt" (%s, %s:%d)", ##__VA_ARGS__, __FILE__, __FUNCTION__, __LINE__); }
31 # define WARNING(fmt,...){ Logger::instance()->log(Logger::WARNING, fmt" (%s, %s:%d)", ##__VA_ARGS__, __FILE__, __FUNCTION__, __LINE__); }
32 # define INFO(fmt,...) { Logger::instance()->log(Logger::INFO, fmt" (%s, %s:%d)", ##__VA_ARGS__, __FILE__, __FUNCTION__, __LINE__); }
33 # define DEBUG(fmt,...) { Logger::instance()->log(Logger::DEBUG, fmt" (%s, %s:%d)", ##__VA_ARGS__, __FILE__, __FUNCTION__, __LINE__); }
34 # define LOG(fmt,...) { Logger::instance()->log(Logger::LOG, fmt" (%s, %s:%d)", ##__VA_ARGS__, __FILE__, __FUNCTION__, __LINE__); }
35 # define LINESTAMP(fmt,...) { Logger::instance()->log(fmt" (%s, %s:%d)", ##__VA_ARGS__, __FILE__, __FUNCTION__, __LINE__); }
36 # define HEXLOG(header, buffer, length) { Logger::instance()->hexlog(header, buffer, length, " (%s, %s:%d)", __FILE__, __FUNCTION__, __LINE__); }
37 # define DUMMY(fmt,...) { Logger::instance()->log(fmt, ##__VA_ARGS__); }
38 #endif /* USE_DEBUG */
39 //----------------------------------------------------------------------
47 static Logger* mInstHandle;
53 static void logger_release()
56 if (Logger::instance()->get_level() >= Logger::INFO) {
57 DUMMY("Logger Released.");
64 enum { NONE = 0, ERROR, WARNING, INFO, DEBUG, LOG };
66 #ifndef _DISABLE_LOGGER
67 bool init(const char* aFileName = 0, int aLogLevel = Logger::ERROR, bool aWithTimestamp = false);
69 void log(const char* aFormat, ...);
70 void log(int aLogLevel, const char* aFormat, ...);
71 void hexlog(const char *header, const char *buffer, const int length, const char *aFormat, ...);
73 static Logger* instance();
77 int get_level() { return mLogLevel; }
79 //----------------------------------------------------------------------
81 #endif /* ULOGGER_H_ */