diff options
Diffstat (limited to 'src/server/shared/Logging/Log.cpp')
-rwxr-xr-x | src/server/shared/Logging/Log.cpp | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/src/server/shared/Logging/Log.cpp b/src/server/shared/Logging/Log.cpp index abdeace4d97..a9bb282cf86 100755 --- a/src/server/shared/Logging/Log.cpp +++ b/src/server/shared/Logging/Log.cpp @@ -29,7 +29,7 @@ extern LoginDatabaseWorkerPool LoginDatabase; Log::Log() : raLogfile(NULL), logfile(NULL), gmLogfile(NULL), charLogfile(NULL), - dberLogfile(NULL), chatLogfile(NULL), arenaLogFile(NULL), sqlLogFile(NULL), sqlDevLogFile(NULL), + dberLogfile(NULL), chatLogfile(NULL), arenaLogFile(NULL), sqlLogFile(NULL), sqlDevLogFile(NULL), wardenLogFile(NULL), m_gmlog_per_account(false), m_enableLogDBLater(false), m_enableLogDB(false), m_colored(false) { @@ -73,6 +73,10 @@ Log::~Log() if (sqlDevLogFile != NULL) fclose(sqlDevLogFile); sqlDevLogFile = NULL; + + if (wardenLogFile != NULL) + fclose(wardenLogFile); + wardenLogFile = NULL; } void Log::SetLogLevel(char *Level) @@ -166,6 +170,7 @@ void Log::Initialize() arenaLogFile = openLogFile("ArenaLogFile", NULL, "a"); sqlLogFile = openLogFile("SQLDriverLogFile", NULL, "a"); sqlDevLogFile = openLogFile("SQLDeveloperLogFile", NULL, "a"); + wardenLogFile = openLogFile("Warden.LogFile",NULL,"a"); // Main log file settings m_logLevel = ConfigMgr::GetIntDefault("LogLevel", LOGL_NORMAL); @@ -1055,3 +1060,20 @@ void Log::outErrorST(const char * str, ...) ACE_Stack_Trace st; outError("%s [Stacktrace: %s]", nnew_str, st.c_str()); } + +void Log::outWarden(const char * str, ...) +{ + if (!str) + return; + + if (wardenLogFile) + { + outTimestamp(wardenLogFile); + va_list ap; + va_start(ap, str); + vfprintf(wardenLogFile, str, ap); + fprintf(wardenLogFile, "\n" ); + fflush(wardenLogFile); + va_end(ap); + } +} |