aboutsummaryrefslogtreecommitdiff
path: root/src/shared
diff options
context:
space:
mode:
Diffstat (limited to 'src/shared')
-rw-r--r--src/shared/Log.cpp23
-rw-r--r--src/shared/Log.h7
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;
};