Core/Logging: Added documentation about this system
- Restored old CharDump (LOG_FILTER_PLAYER_DUMP) but disabled by default. - "%s" is now used to set dynamic file names, only used by GM commands and Player dump
This commit is contained in:
@@ -170,7 +170,7 @@ LoginDatabase.WorkerThreads = 1
|
||||
# 5 - (Error)
|
||||
# 6 - (Fatal)
|
||||
#
|
||||
# Flags: Default Console = 6, File = 7, DB = 0
|
||||
# Flags:
|
||||
# 0 - None
|
||||
# 1 - Prefix Timestamp to the text
|
||||
# 2 - Prefix Log Level to the text
|
||||
|
||||
@@ -719,11 +719,15 @@ void WorldSession::HandleCharDeleteOpcode(WorldPacket & recv_data)
|
||||
sScriptMgr->OnPlayerDelete(guid);
|
||||
sWorld->DeleteCharaceterNameData(GUID_LOPART(guid));
|
||||
|
||||
if (sLog->ShouldLog(LOG_FILTER_CHARACTER, LOG_LEVEL_DEBUG)) // optimize GetPlayerDump call
|
||||
if (sLog->ShouldLog(LOG_FILTER_PLAYER_DUMP, LOG_LEVEL_INFO)) // optimize GetPlayerDump call
|
||||
{
|
||||
std::string dump;
|
||||
if (PlayerDumpWriter().GetDump(GUID_LOPART(guid), dump))
|
||||
sLog->outDebug(LOG_FILTER_CHARACTER, dump.c_str(), GetAccountId(), GUID_LOPART(guid), name.c_str());
|
||||
{
|
||||
std::ostringstream ss;
|
||||
ss << GetAccountId() << '_' << name.c_str();
|
||||
sLog->outCharDump(ss.str().c_str(), dump.c_str(), GetAccountId(), GUID_LOPART(guid), name.c_str());
|
||||
}
|
||||
}
|
||||
|
||||
Player::DeleteFromDB(guid, GetAccountId());
|
||||
|
||||
@@ -62,10 +62,12 @@ enum LogFilterType
|
||||
LOG_FILTER_CHARACTER,
|
||||
LOG_FILTER_ARENAS,
|
||||
LOG_FILTER_SQL_DRIVER,
|
||||
LOG_FILTER_SQL_DEV
|
||||
LOG_FILTER_SQL_DEV,
|
||||
LOG_FILTER_PLAYER_DUMP,
|
||||
LOG_FILTER_BATTLEFIELD
|
||||
};
|
||||
|
||||
const uint8 MaxLogFilter = uint8(LOG_FILTER_SQL_DEV) + 1;
|
||||
const uint8 MaxLogFilter = uint8(LOG_FILTER_BATTLEFIELD) + 1;
|
||||
|
||||
// Values assigned have their equivalent in enum ACE_Log_Priority
|
||||
enum LogLevel
|
||||
@@ -105,7 +107,6 @@ struct LogMessage
|
||||
: level(_level)
|
||||
, type(_type)
|
||||
, text(_text)
|
||||
, param1(0)
|
||||
{
|
||||
mtime = time(NULL);
|
||||
}
|
||||
@@ -117,7 +118,7 @@ struct LogMessage
|
||||
LogFilterType type;
|
||||
std::string text;
|
||||
std::string prefix;
|
||||
uint32 param1;
|
||||
std::string param1;
|
||||
time_t mtime;
|
||||
};
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@ AppenderFile::AppenderFile(uint8 id, std::string const& name, LogLevel level, co
|
||||
, logDir(_logDir)
|
||||
, mode(_mode)
|
||||
{
|
||||
dynamicName = std::string::npos != filename.find("%u");
|
||||
dynamicName = std::string::npos != filename.find("%s");
|
||||
backup = _flags & APPENDER_FLAGS_MAKE_FILE_BACKUP;
|
||||
|
||||
logfile = !dynamicName ? OpenFile(_filename, _mode, backup) : NULL;
|
||||
@@ -44,7 +44,7 @@ void AppenderFile::_write(LogMessage& message)
|
||||
if (dynamicName)
|
||||
{
|
||||
char namebuf[TRINITY_PATH_MAX];
|
||||
snprintf(namebuf, TRINITY_PATH_MAX, filename.c_str(), message.param1);
|
||||
snprintf(namebuf, TRINITY_PATH_MAX, filename.c_str(), message.param1.c_str());
|
||||
logfile = OpenFile(namebuf, mode, backup);
|
||||
}
|
||||
|
||||
|
||||
@@ -449,6 +449,23 @@ void Log::outFatal(LogFilterType filter, const char * str, ...)
|
||||
va_end(ap);
|
||||
}
|
||||
|
||||
void Log::outCharDump(const char* param, const char * str, ...)
|
||||
{
|
||||
if (!str || !ShouldLog(LOG_FILTER_PLAYER_DUMP, LOG_LEVEL_INFO))
|
||||
return;
|
||||
|
||||
va_list ap;
|
||||
va_start(ap, str);
|
||||
char text[MAX_QUERY_LEN];
|
||||
vsnprintf(text, MAX_QUERY_LEN, str, ap);
|
||||
va_end(ap);
|
||||
|
||||
LogMessage* msg = new LogMessage(LOG_LEVEL_INFO, LOG_FILTER_PLAYER_DUMP, text);
|
||||
msg->param1 = param;
|
||||
|
||||
write(msg);
|
||||
}
|
||||
|
||||
void Log::outCommand(uint32 account, const char * str, ...)
|
||||
{
|
||||
if (!str || !ShouldLog(LOG_FILTER_GMCOMMAND, LOG_LEVEL_INFO))
|
||||
@@ -461,7 +478,10 @@ void Log::outCommand(uint32 account, const char * str, ...)
|
||||
va_end(ap);
|
||||
|
||||
LogMessage* msg = new LogMessage(LOG_LEVEL_INFO, LOG_FILTER_GMCOMMAND, text);
|
||||
msg->param1 = account;
|
||||
|
||||
std::ostringstream ss;
|
||||
ss << account;
|
||||
msg->param1 = ss.str();
|
||||
|
||||
write(msg);
|
||||
}
|
||||
|
||||
@@ -56,6 +56,7 @@ class Log
|
||||
|
||||
void EnableDBAppenders();
|
||||
void outCommand(uint32 account, const char * str, ...) ATTR_PRINTF(3, 4);
|
||||
void outCharDump(const char* param, const char* str, ...) ATTR_PRINTF(3, 4);
|
||||
static std::string GetTimestampStr();
|
||||
|
||||
void SetRealmID(uint32 id);
|
||||
|
||||
@@ -2592,7 +2592,7 @@ PlayerDump.DisallowOverwrite = 1
|
||||
# 5 - (Error)
|
||||
# 6 - (Fatal)
|
||||
#
|
||||
# Flags: Default Console = 6, File = 7, DB = 0
|
||||
# Flags:
|
||||
# 0 - None
|
||||
# 1 - Prefix Timestamp to the text
|
||||
# 2 - Prefix Log Level to the text
|
||||
@@ -2629,13 +2629,14 @@ PlayerDump.DisallowOverwrite = 1
|
||||
|
||||
Appender.Console=1,2,6
|
||||
Appender.Server=2,2,7,Server.log,w
|
||||
Appender.GM=2,2,7,GM.log
|
||||
Appender.GM=2,2,7,GM_%s.log
|
||||
Appender.SQL=2,2,7,SQL.log
|
||||
Appender.DBErrors=2,2,7,DBErrors.log
|
||||
Appender.Char=2,2,7,Char.log,w
|
||||
Appender.CharDump=2,2,0,chardumps/%s.log
|
||||
Appender.RA=2,2,7,RA.log
|
||||
Appender.Arenas=2,2,7,Arena.log
|
||||
Appender.SQLDev=2,2,7,SQLDev.log
|
||||
Appender.SQLDev=2,2,0,SQLDev.log
|
||||
Appender.SQLDriver=2,2,7,SQLDriver.log
|
||||
Appender.Warden=2,2,7,Warden.log
|
||||
Appender.Chat=2,2,7,Chat.log
|
||||
@@ -2684,12 +2685,14 @@ Appender.Chat=2,2,7,Chat.log
|
||||
# 31 - Worldserver
|
||||
# 32 - Game Events
|
||||
# 33 - Calendar
|
||||
# 34 - Character (Exclusive to log login, logout, create, rename, delete actions)
|
||||
# 34 - Character (Exclusive to log login, logout, create, rename)
|
||||
# 35 - Arenas
|
||||
# 36 - SQL Driver
|
||||
# 37 - SQL Dev
|
||||
# 38 - Player Dump
|
||||
# 39 - Battlefield
|
||||
|
||||
Logger.Root=0,5,Console Server
|
||||
Logger.Root=0,3,Console Server
|
||||
Logger.Units=1,3,Console Server
|
||||
Logger.Pets=2,3,Console Server
|
||||
Logger.Vehicles=3,3,Console Server
|
||||
@@ -2715,7 +2718,7 @@ Logger.PlayerChat=22,3,Chat
|
||||
Logger.Loot=23,3,Console Server
|
||||
Logger.Guilds=24,3,Console Server
|
||||
Logger.Transports=25,3,Console Server
|
||||
Logger.SQL=26,2,Console Server SQL
|
||||
Logger.SQL=26,2,Console Server DBErrors
|
||||
Logger.GM=27,3,Console Server GM
|
||||
Logger.RA=28,3,RA
|
||||
Logger.Warden=29,3,Warden
|
||||
@@ -2727,6 +2730,8 @@ Logger.Character=34,3,Char
|
||||
Logger.Arenas=35,3,Arenas
|
||||
Logger.SQLDriver=36,5,SQLDriver
|
||||
Logger.SQLDev=37,3,SQLDev
|
||||
Logger.CharDump=38,5,CharDump
|
||||
Logger.Battlefield=39,3,Console Server
|
||||
|
||||
# LogLevel
|
||||
# 0 - (Disabled)
|
||||
@@ -2745,7 +2750,7 @@ Logger.SQLDev=37,3,SQLDev
|
||||
# (Using spaces as separator).
|
||||
# Default: "Console Server"
|
||||
|
||||
Appenders=Console Server
|
||||
Appenders=Console Server GM Char Arenas Warden DBErrors CharDump
|
||||
|
||||
#
|
||||
# Loggers
|
||||
@@ -2753,4 +2758,4 @@ Appenders=Console Server
|
||||
# (Using spaces as separator).
|
||||
# Default: "root"
|
||||
|
||||
Loggers=Root
|
||||
Loggers=Root GM Character Arenas Warden SQL
|
||||
|
||||
Reference in New Issue
Block a user