diff options
author | megamage <none@none> | 2009-03-23 20:09:55 -0600 |
---|---|---|
committer | megamage <none@none> | 2009-03-23 20:09:55 -0600 |
commit | 04b27302b0bde197bd78f84ba77f0736a48f152f (patch) | |
tree | d69ed3646e1ab129842fc830ae8cb9740945e93d /src/shared/Log.cpp | |
parent | 84d0aae7fcc33cd1eb19bdb9f56c9a8014d0f759 (diff) |
*Add new log level "crash alarm" to record very dangerous errors.
--HG--
branch : trunk
Diffstat (limited to 'src/shared/Log.cpp')
-rw-r--r-- | src/shared/Log.cpp | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/src/shared/Log.cpp b/src/shared/Log.cpp index d0171a523fe..e443d10ed6c 100644 --- a/src/shared/Log.cpp +++ b/src/shared/Log.cpp @@ -402,6 +402,46 @@ void Log::outString( const char * str, ... ) fflush(stdout); } +void Log::outCrash( const char * err, ... ) +{ + if( !err ) + return; + + if (m_enableLogDB) + { + va_list ap2; + va_start(ap2, err); + char nnew_str[MAX_QUERY_LEN]; + vsnprintf(nnew_str, MAX_QUERY_LEN, err, ap2); + outDB(LOG_TYPE_CRASH, nnew_str); + va_end(ap2); + } + + if(m_colored) + SetColor(false,RED); + + UTF8PRINTF(stderr,err,); + + if(m_colored) + ResetColor(false); + + fprintf( stderr, "\n" ); + if(logfile) + { + outTimestamp(logfile); + fprintf(logfile, "CRASH ALARM:" ); + + va_list ap; + va_start(ap, err); + vfprintf(logfile, err, ap); + va_end(ap); + + fprintf(logfile, "\n" ); + fflush(logfile); + } + fflush(stderr); +} + void Log::outError( const char * err, ... ) { if( !err ) |