[6848] Implement possibility creating gm log per account files using new option in mangosd.conf. Releated cleanups.

This commit is contained in:
VladimirMangos 2008-11-24 22:42:11 +03:00
parent d34899097f
commit 4ccfa1e71e
11 changed files with 145 additions and 80 deletions

View file

@ -56,7 +56,8 @@ const int Color_count = int(WHITE)+1;
class Log : public MaNGOS::Singleton<Log, MaNGOS::ClassLevelLockable<Log, ZThread::FastMutex> >
{
friend class MaNGOS::OperatorNew<Log>;
Log() : raLogfile(NULL), logfile(NULL), gmLogfile(NULL), charLogfile(NULL), dberLogfile(NULL), m_colored(false) { Initialize(); }
Log();
~Log()
{
if( logfile != NULL )
@ -83,7 +84,7 @@ class Log : public MaNGOS::Singleton<Log, MaNGOS::ClassLevelLockable<Log, ZThrea
void Initialize();
void InitColors(std::string init_str);
void outTitle( const char * str);
void outCommand( const char * str, ...) ATTR_PRINTF(2,3);
void outCommand( uint32 account, const char * str, ...) ATTR_PRINTF(3,4);
void outString(); // any log level
// any log level
void outString( const char * str, ... ) ATTR_PRINTF(2,3);
@ -118,6 +119,9 @@ class Log : public MaNGOS::Singleton<Log, MaNGOS::ClassLevelLockable<Log, ZThrea
bool IsOutCharDump() const { return m_charLog_Dump; }
bool IsIncludeTime() const { return m_includeTime; }
private:
FILE* openLogFile(char const* configFileName,char const* configTimeStampFlag, char const* mode);
FILE* openGmlogPerAccount(uint32 account);
FILE* raLogfile;
FILE* logfile;
FILE* gmLogfile;
@ -132,9 +136,16 @@ class Log : public MaNGOS::Singleton<Log, MaNGOS::ClassLevelLockable<Log, ZThrea
Color m_colors[4];
uint32 m_logFilter;
// cache values for after initilization use (like gm log per account case)
std::string m_logsDir;
std::string m_logsTimestamp;
// char log control
bool m_charLog_Dump;
// gm log control
bool m_gmlog_per_account;
std::string m_gmlog_filename_format;
};
#define sLog MaNGOS::Singleton<Log>::Instance()