| 277 | | |
| 278 | | |
| 279 | | |
| 280 | | |
| 281 | | void Logger::info_log( const char* funcname, const QString& class_name, const QString& logMsg ) |
| 282 | | { |
| 283 | | if ( !Object::is_using_verbose_log() ) return; |
| 284 | | |
| 285 | | pthread_mutex_lock( &__logger_mutex ); |
| 286 | | |
| 287 | | QString prefix = "(I) " + class_name + "\t" + funcname; |
| 288 | | |
| 289 | | #ifdef WIN32 |
| 290 | | __msg_queue.push_back( QString( "%1 %2\n" ).arg(prefix).arg(logMsg).toUtf8() ); |
| 291 | | #else |
| 292 | | __msg_queue.push_back( QString( "\033[32m%1 %2 \033[0m\n" ).arg(prefix).arg(logMsg) ); |
| 293 | | #endif |
| 294 | | |
| 295 | | pthread_mutex_unlock( &__logger_mutex ); |
| 296 | | |
| 297 | | } |
| 298 | | |
| 299 | | |
| 300 | | |
| 301 | | |
| 302 | | void Logger::warning_log( const char* funcname, const QString& class_name, const QString& logMsg ) |
| 303 | | { |
| 304 | | pthread_mutex_lock( &__logger_mutex ); |
| 305 | | QString prefix = "(W) " + class_name + "\t" + funcname; |
| 306 | | |
| 307 | | #ifdef WIN32 |
| 308 | | __msg_queue.push_back( prefix + logMsg + "\n" ); |
| 309 | | #else |
| 310 | | __msg_queue.push_back( QString( "\033[36m%1 %2\033[0m\n" ).arg( prefix ).arg( logMsg ) ); |
| 311 | | #endif |
| 312 | | |
| 313 | | pthread_mutex_unlock( &__logger_mutex ); |
| 314 | | } |
| 315 | | |
| 316 | | |
| 317 | | |
| 318 | | void Logger::error_log( const char* funcname, const QString& class_name, const QString& logMsg ) |
| 319 | | { |
| 320 | | pthread_mutex_lock( &__logger_mutex ); |
| 321 | | |
| 322 | | QString prefix = QString( "(E) %1\t%2" ).arg( class_name ).arg( funcname ); |
| 323 | | |
| 324 | | #ifdef WIN32 |
| 325 | | __msg_queue.push_back( prefix + logMsg + "\n" ); |
| 326 | | #else |
| 327 | | __msg_queue.push_back( QString( "\033[31m%1 %2\033[0m\n" ).arg( prefix ).arg( logMsg ) ); |
| 328 | | #endif |
| 329 | | |
| 330 | | pthread_mutex_unlock( &__logger_mutex ); |
| 331 | | } |
| 332 | | |
| 333 | | |
| 334 | | |
| 335 | | |
| 336 | | /* |
| 337 | | #ifndef WIN32 |
| 338 | | |
| 339 | | |
| 340 | | static const WORD bgMask( BACKGROUND_BLUE | BACKGROUND_GREEN | BACKGROUND_RED | BACKGROUND_INTENSITY ); |
| 341 | | |
| 342 | | |
| 343 | | void Logger__setREDColor() |
| 344 | | { |
| 345 | | CONSOLE_SCREEN_BUFFER_INFO csbi; |
| 346 | | HANDLE hCon = GetStdHandle( STD_OUTPUT_HANDLE ); |
| 347 | | GetConsoleScreenBufferInfo(hCon, &csbi); |
| 348 | | |
| 349 | | // WORD wRGBI = GetRGBI(fgColor, FOREGROUND_INTENSITY, FOREGROUND_RED, FOREGROUND_GREEN, FOREGROUND_BLUE); |
| 350 | | WORD color = 10 | 255; |
| 351 | | csbi.wAttributes &= bgMask; |
| 352 | | csbi.wAttributes |= color; |
| 353 | | |
| 354 | | SetConsoleTextAttribute( hCon, csbi.wAttributes ); |
| 355 | | |
| 356 | | // wRGBI = GetRGBI(bgColor, BACKGROUND_INTENSITY, BACKGROUND_RED, BACKGROUND_GREEN, BACKGROUND_BLUE); |
| 357 | | |
| 358 | | // csbi.wAttributes &= fgMask; |
| 359 | | // csbi.wAttributes |= wRGBI; |
| 360 | | |
| 361 | | SetConsoleTextAttribute( hCon, csbi.wAttributes ); |
| 362 | | } |
| 363 | | |
| 364 | | |
| 365 | | #endif |
| 366 | | */ |
| 367 | | |
| | 271 | void Logger::log( Logger::log_level_t level, |
| | 272 | const char* funcname, |
| | 273 | const QString& class_name, |
| | 274 | const QString& msg ) |
| | 275 | { |
| | 276 | if( level == None ) return; |
| | 277 | |
| | 278 | const char* prefix[] = { "(E)", "(W)", "(I)", "(D)" }; |
| | 279 | #ifdef WIN32 |
| | 280 | const char* color[] = { "", "", "", "" }; |
| | 281 | #else |
| | 282 | const char* color[] = { "\033[31m", "\033[36m", "\033[32m", "" }; |
| | 283 | #endif // WIN32 |
| | 284 | |
| | 285 | int i; |
| | 286 | switch(level) { |
| | 287 | case None: |
| | 288 | assert(false); |
| | 289 | i = 0; |
| | 290 | break; |
| | 291 | case Error: |
| | 292 | i = 0; |
| | 293 | break; |
| | 294 | case Warning: |
| | 295 | i = 1; |
| | 296 | break; |
| | 297 | case Info: |
| | 298 | i = 2; |
| | 299 | break; |
| | 300 | case Debug: |
| | 301 | i = 3; |
| | 302 | break; |
| | 303 | default: |
| | 304 | i = 0; |
| | 305 | break; |
| | 306 | } |
| | 307 | |
| | 308 | QString tmp = QString("%1%2 %3\t%4 %5 \033[0m\n") |
| | 309 | .arg(color[i]) |
| | 310 | .arg(prefix[i]) |
| | 311 | .arg(class_name) |
| | 312 | .arg(funcname) |
| | 313 | .arg(msg); |
| | 314 | |
| | 315 | pthread_mutex_lock( &__mutex); |
| | 316 | __msg_queue.push_back( tmp ); |
| | 317 | pthread_mutex_unlock( &__mutex ); |
| | 318 | } |