diff options
Diffstat (limited to 'src/shared')
| -rw-r--r-- | src/shared/Log.cpp | 23 | ||||
| -rw-r--r-- | src/shared/Log.h | 7 |
2 files changed, 29 insertions, 1 deletions
diff --git a/src/shared/Log.cpp b/src/shared/Log.cpp index d042be82b77..46bef6b469b 100644 --- a/src/shared/Log.cpp +++ b/src/shared/Log.cpp @@ -40,7 +40,7 @@ const int LogType_count = int(LogError) +1; Log::Log() : raLogfile(NULL), logfile(NULL), gmLogfile(NULL), charLogfile(NULL), - dberLogfile(NULL), m_colored(false), m_includeTime(false), m_gmlog_per_account(false) + dberLogfile(NULL), arenaLogFile(NULL), m_colored(false), m_includeTime(false), m_gmlog_per_account(false) { Initialize(); } @@ -231,6 +231,8 @@ void Log::Initialize() dberLogfile = openLogFile("DBErrorLogFile",NULL,"a"); raLogfile = openLogFile("RaLogFile",NULL,"a"); + arenaLogFile = openLogFile("ArenaLogFile",NULL,"a"); + // Main log file settings m_includeTime = sConfig.GetBoolDefault("LogTime", false); m_logLevel = sConfig.GetIntDefault("LogLevel", 0); @@ -248,6 +250,7 @@ void Log::Initialize() // Char log settings m_charLog_Dump = sConfig.GetBoolDefault("CharLogDump", false); + } FILE* Log::openLogFile(char const* configFileName,char const* configTimeStampFlag, char const* mode) @@ -423,6 +426,24 @@ void Log::outError( const char * err, ... ) fflush(stderr); } +void Log::outArena( const char * str, ... ) +{ + if( !str ) + return; + + if(arenaLogFile) + { + va_list ap; + outTimestamp(arenaLogFile); + va_start(ap, str); + vfprintf(arenaLogFile, str, ap); + fprintf(arenaLogFile, "\n" ); + va_end(ap); + fflush(arenaLogFile); + } + fflush(stdout); +} + void Log::outErrorDb( const char * err, ... ) { if( !err ) diff --git a/src/shared/Log.h b/src/shared/Log.h index ab8c24571fb..f81a95661d5 100644 --- a/src/shared/Log.h +++ b/src/shared/Log.h @@ -81,6 +81,10 @@ class Log : public Trinity::Singleton<Log, Trinity::ClassLevelLockable<Log, ZThr if (raLogfile != NULL) fclose(raLogfile); raLogfile = NULL; + + if (arenaLogFile != NULL) + fclose(arenaLogFile); + arenaLogFile = NULL; } public: void Initialize(); @@ -109,6 +113,7 @@ class Log : public Trinity::Singleton<Log, Trinity::ClassLevelLockable<Log, ZThr // any log level void outCharDump( const char * str, uint32 account_id, uint32 guid, const char * name ); void outRALog( const char * str, ... ) ATTR_PRINTF(2,3); + void outArena( const char * str, ... ) ATTR_PRINTF(2,3); void SetLogLevel(char * Level); void SetLogFileLevel(char * Level); void SetColor(bool stdout_stream, Color color); @@ -129,6 +134,7 @@ class Log : public Trinity::Singleton<Log, Trinity::ClassLevelLockable<Log, ZThr FILE* gmLogfile; FILE* charLogfile; FILE* dberLogfile; + FILE* arenaLogFile; // log/console control uint32 m_logLevel; @@ -147,6 +153,7 @@ class Log : public Trinity::Singleton<Log, Trinity::ClassLevelLockable<Log, ZThr // gm log control bool m_gmlog_per_account; + std::string m_gmlog_filename_format; }; |
