Blame view
tools/sctk-2.4.10/src/asclite/core/logger.h
3.14 KB
8dcb6dfcb first commit |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 |
/* * ASCLITE * Author: Jerome Ajot, Jon Fiscus, Nicolas Radde, Chris Laprun * * This software was developed at the National Institute of Standards and Technology by * employees of the Federal Government in the course of their official duties. Pursuant * to title 17 Section 105 of the United States Code this software is not subject to * copyright protection and is in the public domain. ASCLITE is an experimental system. * NIST assumes no responsibility whatsoever for its use by other parties, and makes no * guarantees, expressed or implied, about its quality, reliability, or any other * characteristic. We would appreciate acknowledgement if the software is used. * * THIS SOFTWARE IS PROVIDED "AS IS." With regard to this software, NIST MAKES NO EXPRESS * OR IMPLIED WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING MERCHANTABILITY, * OR FITNESS FOR A PARTICULAR PURPOSE. */ /** * Logging methods */ #ifndef LOGGER_H #define LOGGER_H #include "stdinc.h" /** * Logging methods */ class Logger { public: /** class destructor */ ~Logger() {} /** * Set the logger to log in the path specified as an argument */ static void logInFile(const string& file); /** * Log on stdout */ static void logOnStdout(); /** * Change log level */ static void setLogLevel(const int& level); /** * Return the stream to output the loggin * level must be a int between 0 and 5 * where : * 0 ===> Silence * 1 ===> Fatal * 2 ===> Error * 3 ===> Warn * 4 ===> Info (default) * 5 ===> Debug * 6 ===> Alignment * 7 ===> Alignment only */ void log(const int& level, const string& message); void log(const int& level, const char* const message); int getLogLevel() { return log_level; } bool isAlignLogON() { return ( (log_level == 6) || (log_level == 7) ); } string LevelToString(const int& level); static Logger* getLogger(); protected: /** class constructor */ Logger() {} private: static Logger* rootLogger; static ostream* where; static int log_level; }; /* ---------------------------------- */ /* Macro definition to use the logger */ /* ---------------------------------- */ #ifndef LOG_ALIGN #define LOG_ALIGN(_l,_m) _l->log(6, (_m)); #endif #ifndef LOG_DEBUG #define LOG_DEBUG(_l,_m) _l->log(5, (_m)); #endif #ifndef LOG_INFO #define LOG_INFO(_l,_m) _l->log(4, (_m)); #endif #ifndef LOG_WARN #define LOG_WARN(_l,_m) _l->log(3, (_m)); #endif #ifndef LOG_ERR #define LOG_ERR(_l,_m) _l->log(2, (_m)); #endif #ifndef LOG_FATAL #define LOG_FATAL(_l,_m) _l->log(1, (_m)); #endif /**************************************** * Output Errors * ****************************************/ const int E_OK = 0; const int E_LOAD = 1; const int E_COND = 2; const int E_FILTER = 3; const int E_ARGS = 4; const int E_MISSINFO = 5; const int E_INVALID = 6; const int E_LZO = 7; #endif |