liblogger.cpp
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #include <utils/logging/liblogger.h>
00025 #include <utils/logging/multi.h>
00026 #include <utils/logging/console.h>
00027
00028 #include <core/exceptions/software.h>
00029 #include <core/threading/mutex.h>
00030
00031 namespace fawkes {
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052 MultiLogger * LibLogger::logger = NULL;
00053
00054 Mutex * LibLogger::mutex = NULL;
00055
00056
00057
00058
00059
00060
00061
00062 void
00063 LibLogger::init(MultiLogger *multi_logger)
00064 {
00065 if ( logger != NULL ) {
00066 throw AccessViolationException("LibLogger already initialized");
00067 }
00068 mutex = new Mutex();
00069 if ( multi_logger == NULL ) {
00070 logger = new MultiLogger(new ConsoleLogger());
00071 } else {
00072 logger = multi_logger;
00073 }
00074
00075 }
00076
00077
00078
00079
00080
00081
00082 void
00083 LibLogger::finalize()
00084 {
00085 delete logger;
00086 delete mutex;
00087 }
00088
00089
00090
00091
00092
00093
00094 void
00095 LibLogger::add_logger(Logger *l)
00096 {
00097 if ( logger == NULL ) init();
00098 mutex->lock();
00099 logger->add_logger(l);
00100 mutex->unlock();
00101 }
00102
00103
00104
00105
00106
00107
00108 void
00109 LibLogger::remove_logger(Logger *l)
00110 {
00111 if ( logger == NULL ) init();
00112 mutex->lock();
00113 logger->remove_logger(l);
00114 mutex->unlock();
00115 }
00116
00117
00118
00119
00120
00121
00122
00123 void
00124 LibLogger::log_debug(const char *component, const char *format, ...)
00125 {
00126 if ( logger == NULL ) init();
00127 mutex->lock();
00128 va_list va;
00129 va_start(va, format);
00130 logger->vlog_debug(component, format, va);
00131 va_end(va);
00132 mutex->unlock();
00133 }
00134
00135
00136
00137
00138
00139
00140
00141 void
00142 LibLogger::log_info(const char *component, const char *format, ...)
00143 {
00144 if ( logger == NULL ) init();
00145 mutex->lock();
00146 va_list va;
00147 va_start(va, format);
00148 logger->vlog_info(component, format, va);
00149 va_end(va);
00150 mutex->unlock();
00151 }
00152
00153
00154
00155
00156
00157
00158
00159 void
00160 LibLogger::log_warn(const char *component, const char *format, ...)
00161 {
00162 if ( logger == NULL ) init();
00163 mutex->lock();
00164 va_list va;
00165 va_start(va, format);
00166 logger->vlog_warn(component, format, va);
00167 va_end(va);
00168 mutex->unlock();
00169 }
00170
00171
00172
00173
00174
00175
00176
00177 void
00178 LibLogger::log_error(const char *component, const char *format, ...)
00179 {
00180 if ( logger == NULL ) init();
00181 mutex->lock();
00182 va_list va;
00183 va_start(va, format);
00184 logger->vlog_error(component, format, va);
00185 va_end(va);
00186 mutex->unlock();
00187 }
00188
00189
00190
00191
00192
00193
00194
00195
00196 void
00197 LibLogger::vlog_debug(const char *component, const char *format, va_list va)
00198 {
00199 if ( logger == NULL ) init();
00200 mutex->lock();
00201 logger->vlog_debug(component, format, va);
00202 mutex->unlock();
00203 }
00204
00205
00206
00207
00208
00209
00210
00211
00212 void
00213 LibLogger::vlog_info(const char *component, const char *format, va_list va)
00214 {
00215 if ( logger == NULL ) init();
00216 mutex->lock();
00217 logger->vlog_info(component, format, va);
00218 mutex->unlock();
00219 }
00220
00221
00222
00223
00224
00225
00226
00227
00228 void
00229 LibLogger::vlog_warn(const char *component, const char *format, va_list va)
00230 {
00231 if ( logger == NULL ) init();
00232 mutex->lock();
00233 logger->vlog_warn(component, format, va);
00234 mutex->unlock();
00235 }
00236
00237
00238
00239
00240
00241
00242
00243
00244 void
00245 LibLogger::vlog_error(const char *component, const char *format, va_list va)
00246 {
00247 if ( logger == NULL ) init();
00248 mutex->lock();
00249 logger->vlog_error(component, format, va);
00250 mutex->unlock();
00251 }
00252
00253
00254
00255
00256
00257
00258
00259 void
00260 LibLogger::log_debug(const char *component, Exception &e)
00261 {
00262 if ( logger == NULL ) init();
00263 mutex->lock();
00264 logger->log_debug(component, e);
00265 mutex->unlock();
00266 }
00267
00268
00269
00270
00271
00272 void
00273 LibLogger::log_info(const char *component, Exception &e)
00274 {
00275 if ( logger == NULL ) init();
00276 mutex->lock();
00277 logger->log_info(component, e);
00278 mutex->unlock();
00279 }
00280
00281
00282
00283
00284
00285
00286 void
00287 LibLogger::log_warn(const char *component, Exception &e)
00288 {
00289 if ( logger == NULL ) init();
00290 mutex->lock();
00291 logger->log_warn(component, e);
00292 mutex->unlock();
00293 }
00294
00295
00296
00297
00298
00299
00300 void
00301 LibLogger::log_error(const char *component, Exception &e)
00302 {
00303 if ( logger == NULL ) init();
00304 mutex->lock();
00305 logger->log_error(component, e);
00306 mutex->unlock();
00307 }
00308
00309
00310 }