mirror of
https://github.com/mangosfour/server.git
synced 2025-12-14 07:37:01 +00:00
[9924] Implement .server log filter and .server log level comamnds.
* .server log filter comamnd let temporary (until config reload or restart) set log filters state. Or look at filters state. * .server log level renamed from .server set loglevel but now let look at log level also.
This commit is contained in:
parent
ffd2cf874d
commit
b6d7365ac9
12 changed files with 140 additions and 48 deletions
|
|
@ -24,7 +24,7 @@ CREATE TABLE `db_version` (
|
||||||
`version` varchar(120) default NULL,
|
`version` varchar(120) default NULL,
|
||||||
`creature_ai_version` varchar(120) default NULL,
|
`creature_ai_version` varchar(120) default NULL,
|
||||||
`cache_id` int(10) default '0',
|
`cache_id` int(10) default '0',
|
||||||
`required_9899_01_mangos_spell_bonus_data` bit(1) default NULL
|
`required_9924_02_mangos_command` bit(1) default NULL
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Used DB version notes';
|
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Used DB version notes';
|
||||||
|
|
||||||
--
|
--
|
||||||
|
|
@ -754,11 +754,12 @@ INSERT INTO `command` VALUES
|
||||||
('server idleshutdown cancel',3,'Syntax: .server idleshutdown cancel\r\n\r\nCancel the restart/shutdown timer if any.'),
|
('server idleshutdown cancel',3,'Syntax: .server idleshutdown cancel\r\n\r\nCancel the restart/shutdown timer if any.'),
|
||||||
('server idlerestart',3,'Syntax: .server idlerestart #delay\r\n\r\nRestart the server after #delay seconds if no active connections are present (no players). Use #exist_code or 2 as program exist code.'),
|
('server idlerestart',3,'Syntax: .server idlerestart #delay\r\n\r\nRestart the server after #delay seconds if no active connections are present (no players). Use #exist_code or 2 as program exist code.'),
|
||||||
('server idlerestart cancel',3,'Syntax: .server idlerestart cancel\r\n\r\nCancel the restart/shutdown timer if any.'),
|
('server idlerestart cancel',3,'Syntax: .server idlerestart cancel\r\n\r\nCancel the restart/shutdown timer if any.'),
|
||||||
|
('server log filter',4,'Syntax: .server log filter [($filtername|all) (on|off)]\r\n\r\nShow or set server log filters. If used "all" then all filters will be set to on/off state.'),
|
||||||
|
('server log level',4,'Syntax: .server log level [#level]\r\n\r\nShow or set server log level (0 - errors only, 1 - basic, 2 - detail, 3 - debug).'),
|
||||||
('server motd',0,'Syntax: .server motd\r\n\r\nShow server Message of the day.'),
|
('server motd',0,'Syntax: .server motd\r\n\r\nShow server Message of the day.'),
|
||||||
('server plimit',3,'Syntax: .server plimit [#num|-1|-2|-3|reset|player|moderator|gamemaster|administrator]\r\n\r\nWithout arg show current player amount and security level limitations for login to server, with arg set player linit ($num > 0) or securiti limitation ($num < 0 or security leme name. With `reset` sets player limit to the one in the config file'),
|
('server plimit',3,'Syntax: .server plimit [#num|-1|-2|-3|reset|player|moderator|gamemaster|administrator]\r\n\r\nWithout arg show current player amount and security level limitations for login to server, with arg set player linit ($num > 0) or securiti limitation ($num < 0 or security leme name. With `reset` sets player limit to the one in the config file'),
|
||||||
('server restart',3,'Syntax: .server restart #delay\r\n\r\nRestart the server after #delay seconds. Use #exist_code or 2 as program exist code.'),
|
('server restart',3,'Syntax: .server restart #delay\r\n\r\nRestart the server after #delay seconds. Use #exist_code or 2 as program exist code.'),
|
||||||
('server restart cancel',3,'Syntax: .server restart cancel\r\n\r\nCancel the restart/shutdown timer if any.'),
|
('server restart cancel',3,'Syntax: .server restart cancel\r\n\r\nCancel the restart/shutdown timer if any.'),
|
||||||
('server set loglevel',4,'Syntax: .server set loglevel #level\r\n\r\nSet server log level (0 - errors only, 1 - basic, 2 - detail, 3 - debug).'),
|
|
||||||
('server set motd',3,'Syntax: .server set motd $MOTD\r\n\r\nSet server Message of the day.'),
|
('server set motd',3,'Syntax: .server set motd $MOTD\r\n\r\nSet server Message of the day.'),
|
||||||
('server shutdown',3,'Syntax: .server shutdown #delay [#exit_code]\r\n\r\nShut the server down after #delay seconds. Use #exit_code or 0 as program exit code.'),
|
('server shutdown',3,'Syntax: .server shutdown #delay [#exit_code]\r\n\r\nShut the server down after #delay seconds. Use #exit_code or 0 as program exit code.'),
|
||||||
('server shutdown cancel',3,'Syntax: .server shutdown cancel\r\n\r\nCancel the restart/shutdown timer if any.'),
|
('server shutdown cancel',3,'Syntax: .server shutdown cancel\r\n\r\nCancel the restart/shutdown timer if any.'),
|
||||||
|
|
@ -3635,6 +3636,8 @@ INSERT INTO `mangos_string` VALUES
|
||||||
(1024, 'Character \'%s\' (GUID: %u Account %u) can\'t be restored: account character list full!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
|
(1024, 'Character \'%s\' (GUID: %u Account %u) can\'t be restored: account character list full!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
|
||||||
(1025, 'Character \'%s\' (GUID: %u Account %u) can\'t be restored: new name already used!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
|
(1025, 'Character \'%s\' (GUID: %u Account %u) can\'t be restored: new name already used!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
|
||||||
(1026, 'GUID: %u Name: %s Account: %s (%u) Date: %s',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
|
(1026, 'GUID: %u Name: %s Account: %s (%u) Date: %s',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
|
||||||
|
(1027, 'Log filters state:',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
|
||||||
|
(1028, 'All log filters set to: %s',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
|
||||||
(1100,'Account %s (Id: %u) have up to %u expansion allowed now.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
|
(1100,'Account %s (Id: %u) have up to %u expansion allowed now.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
|
||||||
(1101,'Message of the day changed to:\r\n%s',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
|
(1101,'Message of the day changed to:\r\n%s',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
|
||||||
(1102,'Message sent to %s: %s',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
|
(1102,'Message sent to %s: %s',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
|
||||||
|
|
|
||||||
6
sql/updates/9924_01_mangos_mangos_string.sql
Normal file
6
sql/updates/9924_01_mangos_mangos_string.sql
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
ALTER TABLE db_version CHANGE COLUMN required_9899_01_mangos_spell_bonus_data required_9924_01_mangos_mangos_string bit;
|
||||||
|
|
||||||
|
DELETE FROM mangos_string WHERE entry IN (1027,1028);
|
||||||
|
INSERT INTO mangos_string VALUES
|
||||||
|
(1027, 'Log filters state:',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
|
||||||
|
(1028, 'All log filters set to: %s',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
|
||||||
6
sql/updates/9924_02_mangos_command.sql
Normal file
6
sql/updates/9924_02_mangos_command.sql
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
ALTER TABLE db_version CHANGE COLUMN required_9924_01_mangos_mangos_string required_9924_02_mangos_command bit;
|
||||||
|
|
||||||
|
DELETE FROM command WHERE name IN('server set loglevel','server log level','server log filter');
|
||||||
|
INSERT INTO command (name, security, help) VALUES
|
||||||
|
('server log filter',4,'Syntax: .server log filter [($filtername|all) (on|off)]\r\n\r\nShow or set server log filters. If used "all" then all filters will be set to on/off state.'),
|
||||||
|
('server log level',4,'Syntax: .server log level [#level]\r\n\r\nShow or set server log level (0 - errors only, 1 - basic, 2 - detail, 3 - debug).');
|
||||||
|
|
@ -65,6 +65,8 @@ pkgdata_DATA = \
|
||||||
9891_01_mangos_creature_movement.sql \
|
9891_01_mangos_creature_movement.sql \
|
||||||
9891_02_mangos_creature_movement_scripts.sql \
|
9891_02_mangos_creature_movement_scripts.sql \
|
||||||
9899_01_mangos_spell_bonus_data.sql \
|
9899_01_mangos_spell_bonus_data.sql \
|
||||||
|
9924_01_mangos_mangos_string.sql \
|
||||||
|
9924_02_mangos_command.sql \
|
||||||
README
|
README
|
||||||
|
|
||||||
## Additional files to include when running 'make dist'
|
## Additional files to include when running 'make dist'
|
||||||
|
|
@ -110,4 +112,6 @@ EXTRA_DIST = \
|
||||||
9891_01_mangos_creature_movement.sql \
|
9891_01_mangos_creature_movement.sql \
|
||||||
9891_02_mangos_creature_movement_scripts.sql \
|
9891_02_mangos_creature_movement_scripts.sql \
|
||||||
9899_01_mangos_spell_bonus_data.sql \
|
9899_01_mangos_spell_bonus_data.sql \
|
||||||
|
9924_01_mangos_mangos_string.sql \
|
||||||
|
9924_02_mangos_command.sql \
|
||||||
README
|
README
|
||||||
|
|
|
||||||
|
|
@ -549,9 +549,15 @@ ChatCommand * ChatHandler::getCommandTable()
|
||||||
{ NULL, 0, false, NULL, "", NULL }
|
{ NULL, 0, false, NULL, "", NULL }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static ChatCommand serverLogCommandTable[] =
|
||||||
|
{
|
||||||
|
{ "filter", SEC_CONSOLE, true, &ChatHandler::HandleServerLogFilterCommand, "", NULL },
|
||||||
|
{ "level", SEC_CONSOLE, true, &ChatHandler::HandleServerLogLevelCommand, "", NULL },
|
||||||
|
{ NULL, 0, false, NULL, "", NULL }
|
||||||
|
};
|
||||||
|
|
||||||
static ChatCommand serverSetCommandTable[] =
|
static ChatCommand serverSetCommandTable[] =
|
||||||
{
|
{
|
||||||
{ "loglevel", SEC_CONSOLE, true, &ChatHandler::HandleServerSetLogLevelCommand, "", NULL },
|
|
||||||
{ "motd", SEC_ADMINISTRATOR, true, &ChatHandler::HandleServerSetMotdCommand, "", NULL },
|
{ "motd", SEC_ADMINISTRATOR, true, &ChatHandler::HandleServerSetMotdCommand, "", NULL },
|
||||||
{ NULL, 0, false, NULL, "", NULL }
|
{ NULL, 0, false, NULL, "", NULL }
|
||||||
};
|
};
|
||||||
|
|
@ -563,6 +569,7 @@ ChatCommand * ChatHandler::getCommandTable()
|
||||||
{ "idlerestart", SEC_ADMINISTRATOR, true, NULL, "", serverIdleRestartCommandTable },
|
{ "idlerestart", SEC_ADMINISTRATOR, true, NULL, "", serverIdleRestartCommandTable },
|
||||||
{ "idleshutdown", SEC_ADMINISTRATOR, true, NULL, "", serverShutdownCommandTable },
|
{ "idleshutdown", SEC_ADMINISTRATOR, true, NULL, "", serverShutdownCommandTable },
|
||||||
{ "info", SEC_PLAYER, true, &ChatHandler::HandleServerInfoCommand, "", NULL },
|
{ "info", SEC_PLAYER, true, &ChatHandler::HandleServerInfoCommand, "", NULL },
|
||||||
|
{ "log", SEC_CONSOLE, true, NULL, "", serverLogCommandTable },
|
||||||
{ "motd", SEC_PLAYER, true, &ChatHandler::HandleServerMotdCommand, "", NULL },
|
{ "motd", SEC_PLAYER, true, &ChatHandler::HandleServerMotdCommand, "", NULL },
|
||||||
{ "plimit", SEC_ADMINISTRATOR, true, &ChatHandler::HandleServerPLimitCommand, "", NULL },
|
{ "plimit", SEC_ADMINISTRATOR, true, &ChatHandler::HandleServerPLimitCommand, "", NULL },
|
||||||
{ "restart", SEC_ADMINISTRATOR, true, NULL, "", serverRestartCommandTable },
|
{ "restart", SEC_ADMINISTRATOR, true, NULL, "", serverRestartCommandTable },
|
||||||
|
|
@ -611,29 +618,29 @@ ChatCommand * ChatHandler::getCommandTable()
|
||||||
static ChatCommand commandTable[] =
|
static ChatCommand commandTable[] =
|
||||||
{
|
{
|
||||||
{ "account", SEC_PLAYER, true, NULL, "", accountCommandTable },
|
{ "account", SEC_PLAYER, true, NULL, "", accountCommandTable },
|
||||||
{ "gm", SEC_MODERATOR, true, NULL, "", gmCommandTable },
|
{ "cast", SEC_ADMINISTRATOR, false, NULL, "", castCommandTable },
|
||||||
{ "npc", SEC_MODERATOR, false, NULL, "", npcCommandTable },
|
|
||||||
{ "go", SEC_MODERATOR, false, NULL, "", goCommandTable },
|
|
||||||
{ "learn", SEC_MODERATOR, false, NULL, "", learnCommandTable },
|
|
||||||
{ "modify", SEC_MODERATOR, false, NULL, "", modifyCommandTable },
|
|
||||||
{ "debug", SEC_MODERATOR, true, NULL, "", debugCommandTable },
|
|
||||||
{ "tele", SEC_MODERATOR, true, NULL, "", teleCommandTable },
|
|
||||||
{ "character", SEC_GAMEMASTER, true, NULL, "", characterCommandTable},
|
{ "character", SEC_GAMEMASTER, true, NULL, "", characterCommandTable},
|
||||||
|
{ "debug", SEC_MODERATOR, true, NULL, "", debugCommandTable },
|
||||||
{ "event", SEC_GAMEMASTER, false, NULL, "", eventCommandTable },
|
{ "event", SEC_GAMEMASTER, false, NULL, "", eventCommandTable },
|
||||||
{ "gobject", SEC_GAMEMASTER, false, NULL, "", gobjectCommandTable },
|
{ "gm", SEC_MODERATOR, true, NULL, "", gmCommandTable },
|
||||||
{ "honor", SEC_GAMEMASTER, false, NULL, "", honorCommandTable },
|
{ "honor", SEC_GAMEMASTER, false, NULL, "", honorCommandTable },
|
||||||
{ "wp", SEC_GAMEMASTER, false, NULL, "", wpCommandTable },
|
{ "go", SEC_MODERATOR, false, NULL, "", goCommandTable },
|
||||||
{ "titles", SEC_GAMEMASTER, false, NULL, "", titlesCommandTable },
|
{ "gobject", SEC_GAMEMASTER, false, NULL, "", gobjectCommandTable },
|
||||||
{ "quest", SEC_ADMINISTRATOR, false, NULL, "", questCommandTable },
|
{ "guild", SEC_ADMINISTRATOR, true, NULL, "", guildCommandTable },
|
||||||
{ "reload", SEC_ADMINISTRATOR, true, NULL, "", reloadCommandTable },
|
{ "instance", SEC_ADMINISTRATOR, true, NULL, "", instanceCommandTable },
|
||||||
|
{ "learn", SEC_MODERATOR, false, NULL, "", learnCommandTable },
|
||||||
{ "list", SEC_ADMINISTRATOR, true, NULL, "", listCommandTable },
|
{ "list", SEC_ADMINISTRATOR, true, NULL, "", listCommandTable },
|
||||||
{ "lookup", SEC_ADMINISTRATOR, true, NULL, "", lookupCommandTable },
|
{ "lookup", SEC_ADMINISTRATOR, true, NULL, "", lookupCommandTable },
|
||||||
|
{ "modify", SEC_MODERATOR, false, NULL, "", modifyCommandTable },
|
||||||
|
{ "npc", SEC_MODERATOR, false, NULL, "", npcCommandTable },
|
||||||
{ "pdump", SEC_ADMINISTRATOR, true, NULL, "", pdumpCommandTable },
|
{ "pdump", SEC_ADMINISTRATOR, true, NULL, "", pdumpCommandTable },
|
||||||
{ "guild", SEC_ADMINISTRATOR, true, NULL, "", guildCommandTable },
|
{ "quest", SEC_ADMINISTRATOR, false, NULL, "", questCommandTable },
|
||||||
{ "cast", SEC_ADMINISTRATOR, false, NULL, "", castCommandTable },
|
{ "reload", SEC_ADMINISTRATOR, true, NULL, "", reloadCommandTable },
|
||||||
{ "reset", SEC_ADMINISTRATOR, true, NULL, "", resetCommandTable },
|
{ "reset", SEC_ADMINISTRATOR, true, NULL, "", resetCommandTable },
|
||||||
{ "instance", SEC_ADMINISTRATOR, true, NULL, "", instanceCommandTable },
|
|
||||||
{ "server", SEC_ADMINISTRATOR, true, NULL, "", serverCommandTable },
|
{ "server", SEC_ADMINISTRATOR, true, NULL, "", serverCommandTable },
|
||||||
|
{ "tele", SEC_MODERATOR, true, NULL, "", teleCommandTable },
|
||||||
|
{ "titles", SEC_GAMEMASTER, false, NULL, "", titlesCommandTable },
|
||||||
|
{ "wp", SEC_GAMEMASTER, false, NULL, "", wpCommandTable },
|
||||||
|
|
||||||
{ "aura", SEC_ADMINISTRATOR, false, &ChatHandler::HandleAuraCommand, "", NULL },
|
{ "aura", SEC_ADMINISTRATOR, false, &ChatHandler::HandleAuraCommand, "", NULL },
|
||||||
{ "unaura", SEC_ADMINISTRATOR, false, &ChatHandler::HandleUnAuraCommand, "", NULL },
|
{ "unaura", SEC_ADMINISTRATOR, false, &ChatHandler::HandleUnAuraCommand, "", NULL },
|
||||||
|
|
|
||||||
|
|
@ -425,10 +425,11 @@ class ChatHandler
|
||||||
bool HandleServerIdleRestartCommand(const char* args);
|
bool HandleServerIdleRestartCommand(const char* args);
|
||||||
bool HandleServerIdleShutDownCommand(const char* args);
|
bool HandleServerIdleShutDownCommand(const char* args);
|
||||||
bool HandleServerInfoCommand(const char* args);
|
bool HandleServerInfoCommand(const char* args);
|
||||||
|
bool HandleServerLogFilterCommand(const char* args);
|
||||||
|
bool HandleServerLogLevelCommand(const char* args);
|
||||||
bool HandleServerMotdCommand(const char* args);
|
bool HandleServerMotdCommand(const char* args);
|
||||||
bool HandleServerPLimitCommand(const char* args);
|
bool HandleServerPLimitCommand(const char* args);
|
||||||
bool HandleServerRestartCommand(const char* args);
|
bool HandleServerRestartCommand(const char* args);
|
||||||
bool HandleServerSetLogLevelCommand(const char* args);
|
|
||||||
bool HandleServerSetMotdCommand(const char* args);
|
bool HandleServerSetMotdCommand(const char* args);
|
||||||
bool HandleServerShutDownCommand(const char* args);
|
bool HandleServerShutDownCommand(const char* args);
|
||||||
bool HandleServerShutDownCancelCommand(const char* args);
|
bool HandleServerShutDownCancelCommand(const char* args);
|
||||||
|
|
|
||||||
|
|
@ -792,7 +792,9 @@ enum MangosStrings
|
||||||
LANG_CHARACTER_DELETED_SKIP_FULL = 1024,
|
LANG_CHARACTER_DELETED_SKIP_FULL = 1024,
|
||||||
LANG_CHARACTER_DELETED_SKIP_NAME = 1025,
|
LANG_CHARACTER_DELETED_SKIP_NAME = 1025,
|
||||||
LANG_CHARACTER_DELETED_LIST_LINE_CHAT = 1026,
|
LANG_CHARACTER_DELETED_LIST_LINE_CHAT = 1026,
|
||||||
// Room for more level 4 1027-1099 not used
|
LANG_LOG_FILTERS_STATE_HEADER = 1027,
|
||||||
|
LANG_ALL_LOG_FILTERS_SET_TO_S = 1028,
|
||||||
|
// Room for more level 4 1029-1099 not used
|
||||||
|
|
||||||
// Level 3 (continue)
|
// Level 3 (continue)
|
||||||
LANG_ACCOUNT_SETADDON = 1100,
|
LANG_ACCOUNT_SETADDON = 1100,
|
||||||
|
|
|
||||||
|
|
@ -531,17 +531,69 @@ bool ChatHandler::HandleAccountCreateCommand(const char* args)
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Set the level of logging
|
/// Set the filters of logging
|
||||||
bool ChatHandler::HandleServerSetLogLevelCommand(const char *args)
|
bool ChatHandler::HandleServerLogFilterCommand(const char* args)
|
||||||
{
|
{
|
||||||
if(!*args)
|
if(!*args)
|
||||||
|
{
|
||||||
|
uint32 logfiler = sLog.getLogFilter();
|
||||||
|
|
||||||
|
SendSysMessage(LANG_LOG_FILTERS_STATE_HEADER);
|
||||||
|
for(int i = 0; i < LOG_FILTER_COUNT; ++i)
|
||||||
|
PSendSysMessage(" %-20s = %s",logFilterData[i].name,(logfiler & (1 << i)) !=0 ? GetMangosString(LANG_ON) : GetMangosString(LANG_OFF));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
char *filtername = strtok((char*)args, " ");
|
||||||
|
if (!filtername)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
char *NewLevel = strtok((char*)args, " ");
|
char *value_str = strtok(NULL, " ");
|
||||||
if (!NewLevel)
|
if (!value_str)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
sLog.SetLogLevel(NewLevel);
|
bool value;
|
||||||
|
if (strncmp(value_str, "on", 3) == 0)
|
||||||
|
value = true;
|
||||||
|
else if (strncmp(value_str, "off", 4) == 0)
|
||||||
|
value = false;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
SendSysMessage(LANG_USE_BOL);
|
||||||
|
SetSentErrorMessage(true);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (strncmp(filtername, "all", 4) == 0)
|
||||||
|
{
|
||||||
|
sLog.SetLogFilter(LogFilters(0xFFFFFFFF),value);
|
||||||
|
PSendSysMessage(LANG_ALL_LOG_FILTERS_SET_TO_S, value ? GetMangosString(LANG_ON) : GetMangosString(LANG_OFF));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
for(int i = 0; i < LOG_FILTER_COUNT; ++i)
|
||||||
|
{
|
||||||
|
if (!strncmp(filtername,logFilterData[i].name,strlen(filtername)))
|
||||||
|
{
|
||||||
|
sLog.SetLogFilter(LogFilters(1 << i),value);
|
||||||
|
PSendSysMessage(" %-20s = %s",logFilterData[i].name,value ? GetMangosString(LANG_ON) : GetMangosString(LANG_OFF));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Set the level of logging
|
||||||
|
bool ChatHandler::HandleServerLogLevelCommand(const char *args)
|
||||||
|
{
|
||||||
|
if(!*args)
|
||||||
|
{
|
||||||
|
PSendSysMessage("Log level: %u");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
sLog.SetLogLevel((char*)args);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -32,6 +32,20 @@
|
||||||
|
|
||||||
INSTANTIATE_SINGLETON_1( Log );
|
INSTANTIATE_SINGLETON_1( Log );
|
||||||
|
|
||||||
|
LogFilterData logFilterData[LOG_FILTER_COUNT] =
|
||||||
|
{
|
||||||
|
{ "transport_moves", "LogFilter_TransportMoves", true },
|
||||||
|
{ "creature_moves", "LogFilter_CreatureMoves", true },
|
||||||
|
{ "visibility_changes", "LogFilter_VisibilityChanges", true },
|
||||||
|
{ "achievement_updates", "LogFilter_AchievementUpdates", true },
|
||||||
|
{ "weather", "LogFilter_Weather", true },
|
||||||
|
{ "player_stats", "LogFilter_PlayerStats", false },
|
||||||
|
{ "sql_text", "LogFilter_SQLText", false },
|
||||||
|
{ "player_moves", "LogFilter_PlayerMoves", false },
|
||||||
|
{ "periodic_effects", "LogFilter_PeriodicAffects", false },
|
||||||
|
{ "ai_and_movegens", "LogFilter_AIAndMovegens", false },
|
||||||
|
};
|
||||||
|
|
||||||
enum LogType
|
enum LogType
|
||||||
{
|
{
|
||||||
LogNormal = 0,
|
LogNormal = 0,
|
||||||
|
|
@ -250,26 +264,10 @@ void Log::Initialize()
|
||||||
InitColors(sConfig.GetStringDefault("LogColors", ""));
|
InitColors(sConfig.GetStringDefault("LogColors", ""));
|
||||||
|
|
||||||
m_logFilter = 0;
|
m_logFilter = 0;
|
||||||
|
for(int i = 0; i < LOG_FILTER_COUNT; ++i)
|
||||||
if (sConfig.GetBoolDefault("LogFilter_TransportMoves", true))
|
if (logFilterData[i].name)
|
||||||
m_logFilter |= LOG_FILTER_TRANSPORT_MOVES;
|
if (sConfig.GetBoolDefault(logFilterData[i].configName, logFilterData[i].defaultState))
|
||||||
if (sConfig.GetBoolDefault("LogFilter_CreatureMoves", true))
|
m_logFilter |= (1 << i);
|
||||||
m_logFilter |= LOG_FILTER_CREATURE_MOVES;
|
|
||||||
if (sConfig.GetBoolDefault("LogFilter_VisibilityChanges", true))
|
|
||||||
m_logFilter |= LOG_FILTER_VISIBILITY_CHANGES;
|
|
||||||
if (sConfig.GetBoolDefault("LogFilter_AchievementUpdates", true))
|
|
||||||
m_logFilter |= LOG_FILTER_ACHIEVEMENT_UPDATES;
|
|
||||||
if (sConfig.GetBoolDefault("LogFilter_Weather", true))
|
|
||||||
m_logFilter |= LOG_FILTER_WEATHER;
|
|
||||||
|
|
||||||
if (sConfig.GetBoolDefault("LogFilter_SQLText", false))
|
|
||||||
m_logFilter |= LOG_FILTER_SQL_TEXT;
|
|
||||||
if (sConfig.GetBoolDefault("LogFilter_PlayerMoves", false))
|
|
||||||
m_logFilter |= LOG_FILTER_PLAYER_MOVES;
|
|
||||||
if (sConfig.GetBoolDefault("LogFilter_PeriodicAffects", false))
|
|
||||||
m_logFilter |= LOG_FILTER_PERIODIC_AFFECTS;
|
|
||||||
if (sConfig.GetBoolDefault("LogFilter_AIAndMovegens", false))
|
|
||||||
m_logFilter |= LOG_FILTER_AI_AND_MOVEGENSS;
|
|
||||||
|
|
||||||
// Char log settings
|
// Char log settings
|
||||||
m_charLog_Dump = sConfig.GetBoolDefault("CharLogDump", false);
|
m_charLog_Dump = sConfig.GetBoolDefault("CharLogDump", false);
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,7 @@ enum LogLevel
|
||||||
LOG_LVL_DEBUG = 3
|
LOG_LVL_DEBUG = 3
|
||||||
};
|
};
|
||||||
|
|
||||||
// bitmask
|
// bitmask (not forgot update logFilterData content)
|
||||||
enum LogFilters
|
enum LogFilters
|
||||||
{
|
{
|
||||||
LOG_FILTER_TRANSPORT_MOVES = 0x0001, // any related to transport moves
|
LOG_FILTER_TRANSPORT_MOVES = 0x0001, // any related to transport moves
|
||||||
|
|
@ -48,6 +48,17 @@ enum LogFilters
|
||||||
LOG_FILTER_AI_AND_MOVEGENSS = 0x0200, // DoT/HoT apply trace
|
LOG_FILTER_AI_AND_MOVEGENSS = 0x0200, // DoT/HoT apply trace
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#define LOG_FILTER_COUNT 10
|
||||||
|
|
||||||
|
struct LogFilterData
|
||||||
|
{
|
||||||
|
char const* name;
|
||||||
|
char const* configName;
|
||||||
|
bool defaultState;
|
||||||
|
};
|
||||||
|
|
||||||
|
extern LogFilterData logFilterData[LOG_FILTER_COUNT];
|
||||||
|
|
||||||
enum Color
|
enum Color
|
||||||
{
|
{
|
||||||
BLACK,
|
BLACK,
|
||||||
|
|
@ -129,6 +140,7 @@ class Log : public MaNGOS::Singleton<Log, MaNGOS::ClassLevelLockable<Log, ACE_Th
|
||||||
// any log level
|
// any log level
|
||||||
void outCharDump( const char * str, uint32 account_id, uint32 guid, const char * name );
|
void outCharDump( const char * str, uint32 account_id, uint32 guid, const char * name );
|
||||||
void outRALog( const char * str, ... ) ATTR_PRINTF(2,3);
|
void outRALog( const char * str, ... ) ATTR_PRINTF(2,3);
|
||||||
|
uint32 GetLogLevel() const { return m_logLevel; }
|
||||||
void SetLogLevel(char * Level);
|
void SetLogLevel(char * Level);
|
||||||
void SetLogFileLevel(char * Level);
|
void SetLogFileLevel(char * Level);
|
||||||
void SetColor(bool stdout_stream, Color color);
|
void SetColor(bool stdout_stream, Color color);
|
||||||
|
|
@ -137,6 +149,7 @@ class Log : public MaNGOS::Singleton<Log, MaNGOS::ClassLevelLockable<Log, ACE_Th
|
||||||
static void outTimestamp(FILE* file);
|
static void outTimestamp(FILE* file);
|
||||||
static std::string GetTimestampStr();
|
static std::string GetTimestampStr();
|
||||||
uint32 getLogFilter() const { return m_logFilter; }
|
uint32 getLogFilter() const { return m_logFilter; }
|
||||||
|
void SetLogFilter(LogFilters filter, bool on) { if (on) m_logFilter |= filter; else m_logFilter &= ~filter; }
|
||||||
bool HasLogLevelOrHigher(LogLevel loglvl) const { return m_logLevel >= loglvl || (m_logFileLevel >= loglvl && logfile); }
|
bool HasLogLevelOrHigher(LogLevel loglvl) const { return m_logLevel >= loglvl || (m_logFileLevel >= loglvl && logfile); }
|
||||||
bool IsOutCharDump() const { return m_charLog_Dump; }
|
bool IsOutCharDump() const { return m_charLog_Dump; }
|
||||||
bool IsIncludeTime() const { return m_includeTime; }
|
bool IsIncludeTime() const { return m_includeTime; }
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
#ifndef __REVISION_NR_H__
|
#ifndef __REVISION_NR_H__
|
||||||
#define __REVISION_NR_H__
|
#define __REVISION_NR_H__
|
||||||
#define REVISION_NR "9923"
|
#define REVISION_NR "9924"
|
||||||
#endif // __REVISION_NR_H__
|
#endif // __REVISION_NR_H__
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
#ifndef __REVISION_SQL_H__
|
#ifndef __REVISION_SQL_H__
|
||||||
#define __REVISION_SQL_H__
|
#define __REVISION_SQL_H__
|
||||||
#define REVISION_DB_CHARACTERS "required_9849_01_characters_saved_variables"
|
#define REVISION_DB_CHARACTERS "required_9849_01_characters_saved_variables"
|
||||||
#define REVISION_DB_MANGOS "required_9899_01_mangos_spell_bonus_data"
|
#define REVISION_DB_MANGOS "required_9924_02_mangos_command"
|
||||||
#define REVISION_DB_REALMD "required_9748_01_realmd_realmlist"
|
#define REVISION_DB_REALMD "required_9748_01_realmd_realmlist"
|
||||||
#endif // __REVISION_SQL_H__
|
#endif // __REVISION_SQL_H__
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue