mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-28 16:16:27 +00:00
feat(Core/Logging): rework logging (#4692)
* feat(Core/Logging): rework logging * correct level for sql.sql * del unused config options * Correct build * correct after merge * whitespace 20:29:37 1. 'Player.cpp'. Replace (1) 20:29:37 2. 'ObjectMgr.cpp'. Replace (3) * 1 * correct logging * correct affter merge * 1 * 2 * LOG_LEVEL_WARN * #include "AppenderDB.h" * 3 * 4 * 5 * 1. 'WorldSocket.cpp'. Replace (1) * 6 * 1
This commit is contained in:
@@ -23,11 +23,11 @@ void ACSoapRunnable::run()
|
||||
soap.send_timeout = 5;
|
||||
if (!soap_valid_socket(soap_bind(&soap, _host.c_str(), _port, 100)))
|
||||
{
|
||||
sLog->outError("ACSoap: couldn't bind to %s:%d", _host.c_str(), _port);
|
||||
LOG_ERROR("server", "ACSoap: couldn't bind to %s:%d", _host.c_str(), _port);
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
sLog->outString("ACSoap: bound to http://%s:%d", _host.c_str(), _port);
|
||||
LOG_INFO("server", "ACSoap: bound to http://%s:%d", _host.c_str(), _port);
|
||||
|
||||
while (!World::IsStopped())
|
||||
{
|
||||
@@ -35,7 +35,7 @@ void ACSoapRunnable::run()
|
||||
continue; // ran into an accept timeout
|
||||
|
||||
#if defined(ENABLE_EXTRAS) && defined(ENABLE_EXTRA_LOGS)
|
||||
sLog->outDebug(LOG_FILTER_NETWORKIO, "ACSoap: accepted connection from IP=%d.%d.%d.%d", (int)(soap.ip >> 24) & 0xFF, (int)(soap.ip >> 16) & 0xFF, (int)(soap.ip >> 8) & 0xFF, (int)soap.ip & 0xFF);
|
||||
LOG_DEBUG("network", "ACSoap: accepted connection from IP=%d.%d.%d.%d", (int)(soap.ip >> 24) & 0xFF, (int)(soap.ip >> 16) & 0xFF, (int)(soap.ip >> 8) & 0xFF, (int)soap.ip & 0xFF);
|
||||
#endif
|
||||
struct soap* thread_soap = soap_copy(&soap);// make a safe copy
|
||||
|
||||
@@ -72,7 +72,7 @@ int ns1__executeCommand(soap* soap, char* command, char** result)
|
||||
if (!soap->userid || !soap->passwd)
|
||||
{
|
||||
#if defined(ENABLE_EXTRAS) && defined(ENABLE_EXTRA_LOGS)
|
||||
sLog->outDebug(LOG_FILTER_NETWORKIO, "ACSoap: Client didn't provide login information");
|
||||
LOG_DEBUG("network", "ACSoap: Client didn't provide login information");
|
||||
#endif
|
||||
return 401;
|
||||
}
|
||||
@@ -81,7 +81,7 @@ int ns1__executeCommand(soap* soap, char* command, char** result)
|
||||
if (!accountId)
|
||||
{
|
||||
#if defined(ENABLE_EXTRAS) && defined(ENABLE_EXTRA_LOGS)
|
||||
sLog->outDebug(LOG_FILTER_NETWORKIO, "ACSoap: Client used invalid username '%s'", soap->userid);
|
||||
LOG_DEBUG("network", "ACSoap: Client used invalid username '%s'", soap->userid);
|
||||
#endif
|
||||
return 401;
|
||||
}
|
||||
@@ -89,7 +89,7 @@ int ns1__executeCommand(soap* soap, char* command, char** result)
|
||||
if (!AccountMgr::CheckPassword(accountId, soap->passwd))
|
||||
{
|
||||
#if defined(ENABLE_EXTRAS) && defined(ENABLE_EXTRA_LOGS)
|
||||
sLog->outDebug(LOG_FILTER_NETWORKIO, "ACSoap: invalid password for account '%s'", soap->userid);
|
||||
LOG_DEBUG("network", "ACSoap: invalid password for account '%s'", soap->userid);
|
||||
#endif
|
||||
return 401;
|
||||
}
|
||||
@@ -97,7 +97,7 @@ int ns1__executeCommand(soap* soap, char* command, char** result)
|
||||
if (AccountMgr::GetSecurity(accountId) < SEC_ADMINISTRATOR)
|
||||
{
|
||||
#if defined(ENABLE_EXTRAS) && defined(ENABLE_EXTRA_LOGS)
|
||||
sLog->outDebug(LOG_FILTER_NETWORKIO, "ACSoap: %s's gmlevel is too low", soap->userid);
|
||||
LOG_DEBUG("network", "ACSoap: %s's gmlevel is too low", soap->userid);
|
||||
#endif
|
||||
return 403;
|
||||
}
|
||||
@@ -106,7 +106,7 @@ int ns1__executeCommand(soap* soap, char* command, char** result)
|
||||
return soap_sender_fault(soap, "Command can not be empty", "The supplied command was an empty string");
|
||||
|
||||
#if defined(ENABLE_EXTRAS) && defined(ENABLE_EXTRA_LOGS)
|
||||
sLog->outDebug(LOG_FILTER_NETWORKIO, "ACSoap: got command '%s'", command);
|
||||
LOG_DEBUG("network", "ACSoap: got command '%s'", command);
|
||||
#endif
|
||||
SOAPCommand connection;
|
||||
|
||||
@@ -122,7 +122,7 @@ int ns1__executeCommand(soap* soap, char* command, char** result)
|
||||
int acc = connection.pendingCommands.acquire();
|
||||
if (acc)
|
||||
{
|
||||
sLog->outError("ACSoap: Error while acquiring lock, acc = %i, errno = %u", acc, errno);
|
||||
LOG_ERROR("server", "ACSoap: Error while acquiring lock, acc = %i, errno = %u", acc, errno);
|
||||
}
|
||||
|
||||
// alright, command finished
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
/// @{
|
||||
/// \file
|
||||
|
||||
#include "AppenderDB.h"
|
||||
#include "Common.h"
|
||||
#include "Configuration/Config.h"
|
||||
#include "Database/DatabaseEnv.h"
|
||||
@@ -35,10 +36,6 @@ char serviceDescription[] = "AzerothCore World of Warcraft emulator world servic
|
||||
int m_ServiceStatus = -1;
|
||||
#endif
|
||||
|
||||
WorldDatabaseWorkerPool WorldDatabase; ///< Accessor to the world database
|
||||
CharacterDatabaseWorkerPool CharacterDatabase; ///< Accessor to the character database
|
||||
LoginDatabaseWorkerPool LoginDatabase; ///< Accessor to the realm/login database
|
||||
|
||||
uint32 realmID; ///< Id of the realm
|
||||
|
||||
/// Print out the usage string for this program on the console.
|
||||
@@ -122,9 +119,12 @@ extern int main(int argc, char** argv)
|
||||
if (!sConfigMgr->LoadAppConfigs())
|
||||
return 1;
|
||||
|
||||
sLog->outString("Using configuration file %s.", configFile.c_str());
|
||||
sLog->outString("Using SSL version: %s (library: %s)", OPENSSL_VERSION_TEXT, SSLeay_version(SSLEAY_VERSION));
|
||||
sLog->outString("Using ACE version: %s", ACE_VERSION);
|
||||
sLog->RegisterAppender<AppenderDB>();
|
||||
sLog->Initialize();
|
||||
|
||||
LOG_INFO("server.worldserver", "Using configuration file %s.", configFile.c_str());
|
||||
LOG_INFO("server.worldserver", "Using SSL version: %s (library: %s)", OPENSSL_VERSION_TEXT, SSLeay_version(SSLEAY_VERSION));
|
||||
LOG_INFO("server.worldserver", "Using ACE version: %s", ACE_VERSION);
|
||||
|
||||
///- and run the 'Master'
|
||||
/// @todo Why do we need this 'Master'? Can't all of this be in the Main as for Realmd?
|
||||
|
||||
@@ -48,22 +48,18 @@ void HandleSignal(int sigNum)
|
||||
{
|
||||
switch (sigNum)
|
||||
{
|
||||
case SIGINT:
|
||||
World::StopNow(RESTART_EXIT_CODE);
|
||||
break;
|
||||
case SIGTERM:
|
||||
case SIGINT:
|
||||
World::StopNow(RESTART_EXIT_CODE);
|
||||
break;
|
||||
case SIGTERM:
|
||||
#if AC_PLATFORM == AC_PLATFORM_WINDOWS
|
||||
case SIGBREAK:
|
||||
if (m_ServiceStatus != 1)
|
||||
case SIGBREAK:
|
||||
if (m_ServiceStatus != 1)
|
||||
#endif
|
||||
World::StopNow(SHUTDOWN_EXIT_CODE);
|
||||
break;
|
||||
/*case SIGSEGV:
|
||||
sLog->outString("ZOMG! SIGSEGV handled!");
|
||||
World::StopNow(SHUTDOWN_EXIT_CODE);
|
||||
break;*/
|
||||
default:
|
||||
break;
|
||||
World::StopNow(SHUTDOWN_EXIT_CODE);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -82,7 +78,7 @@ public:
|
||||
if (!_delayTime)
|
||||
return;
|
||||
|
||||
sLog->outString("Starting up anti-freeze thread (%u seconds max stuck time)...", _delayTime / 1000);
|
||||
LOG_INFO("server", "Starting up anti-freeze thread (%u seconds max stuck time)...", _delayTime / 1000);
|
||||
while (!World::IsStopped())
|
||||
{
|
||||
uint32 curtime = getMSTime();
|
||||
@@ -93,13 +89,13 @@ public:
|
||||
}
|
||||
else if (getMSTimeDiff(_lastChange, curtime) > _delayTime)
|
||||
{
|
||||
sLog->outString("World Thread hangs, kicking out server!");
|
||||
LOG_INFO("server", "World Thread hangs, kicking out server!");
|
||||
ABORT();
|
||||
}
|
||||
|
||||
acore::Thread::Sleep(1000);
|
||||
}
|
||||
sLog->outString("Anti-freeze thread exiting without problems.");
|
||||
LOG_INFO("server", "Anti-freeze thread exiting without problems.");
|
||||
}
|
||||
};
|
||||
|
||||
@@ -116,33 +112,33 @@ int Master::Run()
|
||||
BigNumber seed1;
|
||||
seed1.SetRand(16 * 8);
|
||||
|
||||
sLog->outString("%s (worldserver-daemon)", GitRevision::GetFullVersion());
|
||||
sLog->outString("<Ctrl-C> to stop.\n");
|
||||
LOG_INFO("server", "%s (worldserver-daemon)", GitRevision::GetFullVersion());
|
||||
LOG_INFO("server", "<Ctrl-C> to stop.\n");
|
||||
|
||||
sLog->outString(" █████╗ ███████╗███████╗██████╗ ██████╗ ████████╗██╗ ██╗");
|
||||
sLog->outString(" ██╔══██╗╚══███╔╝██╔════╝██╔══██╗██╔═══██╗╚══██╔══╝██║ ██║");
|
||||
sLog->outString(" ███████║ ███╔╝ █████╗ ██████╔╝██║ ██║ ██║ ███████║");
|
||||
sLog->outString(" ██╔══██║ ███╔╝ ██╔══╝ ██╔══██╗██║ ██║ ██║ ██╔══██║");
|
||||
sLog->outString(" ██║ ██║███████╗███████╗██║ ██║╚██████╔╝ ██║ ██║ ██║");
|
||||
sLog->outString(" ╚═╝ ╚═╝╚══════╝╚══════╝╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝ ╚═╝");
|
||||
sLog->outString(" ██████╗ ██████╗ ██████╗ ███████╗");
|
||||
sLog->outString(" ██╔════╝██╔═══██╗██╔══██╗██╔═══╝");
|
||||
sLog->outString(" ██║ ██║ ██║██████╔╝█████╗");
|
||||
sLog->outString(" ██║ ██║ ██║██╔══██╗██╔══╝");
|
||||
sLog->outString(" ╚██████╗╚██████╔╝██║ ██║███████╗");
|
||||
sLog->outString(" ╚═════╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝\n");
|
||||
LOG_INFO("server", " █████╗ ███████╗███████╗██████╗ ██████╗ ████████╗██╗ ██╗");
|
||||
LOG_INFO("server", " ██╔══██╗╚══███╔╝██╔════╝██╔══██╗██╔═══██╗╚══██╔══╝██║ ██║");
|
||||
LOG_INFO("server", " ███████║ ███╔╝ █████╗ ██████╔╝██║ ██║ ██║ ███████║");
|
||||
LOG_INFO("server", " ██╔══██║ ███╔╝ ██╔══╝ ██╔══██╗██║ ██║ ██║ ██╔══██║");
|
||||
LOG_INFO("server", " ██║ ██║███████╗███████╗██║ ██║╚██████╔╝ ██║ ██║ ██║");
|
||||
LOG_INFO("server", " ╚═╝ ╚═╝╚══════╝╚══════╝╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝ ╚═╝");
|
||||
LOG_INFO("server", " ██████╗ ██████╗ ██████╗ ███████╗");
|
||||
LOG_INFO("server", " ██╔════╝██╔═══██╗██╔══██╗██╔═══╝");
|
||||
LOG_INFO("server", " ██║ ██║ ██║██████╔╝█████╗");
|
||||
LOG_INFO("server", " ██║ ██║ ██║██╔══██╗██╔══╝");
|
||||
LOG_INFO("server", " ╚██████╗╚██████╔╝██║ ██║███████╗");
|
||||
LOG_INFO("server", " ╚═════╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝\n");
|
||||
|
||||
sLog->outString(" AzerothCore 3.3.5a - www.azerothcore.org\n");
|
||||
LOG_INFO("server", " AzerothCore 3.3.5a - www.azerothcore.org\n");
|
||||
|
||||
/// worldserver PID file creation
|
||||
std::string pidFile = sConfigMgr->GetOption<std::string>("PidFile", "");
|
||||
if (!pidFile.empty())
|
||||
{
|
||||
if (uint32 pid = CreatePIDFile(pidFile))
|
||||
sLog->outError("Daemon PID: %u\n", pid); // outError for red color in console
|
||||
LOG_ERROR("server", "Daemon PID: %u\n", pid); // outError for red color in console
|
||||
else
|
||||
{
|
||||
sLog->outError("Cannot create PID file %s (possible error: permission)\n", pidFile.c_str());
|
||||
LOG_ERROR("server", "Cannot create PID file %s (possible error: permission)\n", pidFile.c_str());
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
@@ -214,20 +210,20 @@ int Master::Run()
|
||||
ULONG_PTR currentAffinity = affinity & appAff; // remove non accessible processors
|
||||
|
||||
if (!currentAffinity)
|
||||
sLog->outError("Processors marked in UseProcessors bitmask (hex) %x are not accessible for the worldserver. Accessible processors bitmask (hex): %x", affinity, appAff);
|
||||
LOG_ERROR("server", "Processors marked in UseProcessors bitmask (hex) %x are not accessible for the worldserver. Accessible processors bitmask (hex): %x", affinity, appAff);
|
||||
else if (SetProcessAffinityMask(hProcess, currentAffinity))
|
||||
sLog->outString("Using processors (bitmask, hex): %x", currentAffinity);
|
||||
LOG_INFO("server", "Using processors (bitmask, hex): %x", currentAffinity);
|
||||
else
|
||||
sLog->outError("Can't set used processors (hex): %x", currentAffinity);
|
||||
LOG_ERROR("server", "Can't set used processors (hex): %x", currentAffinity);
|
||||
}
|
||||
}
|
||||
|
||||
if (highPriority)
|
||||
{
|
||||
if (SetPriorityClass(hProcess, HIGH_PRIORITY_CLASS))
|
||||
sLog->outString("worldserver process priority class set to HIGH");
|
||||
LOG_INFO("server", "worldserver process priority class set to HIGH");
|
||||
else
|
||||
sLog->outError("Can't set worldserver process priority class.");
|
||||
LOG_ERROR("server", "Can't set worldserver process priority class.");
|
||||
}
|
||||
|
||||
#else // Linux
|
||||
@@ -242,21 +238,21 @@ int Master::Run()
|
||||
CPU_SET(i, &mask);
|
||||
|
||||
if (sched_setaffinity(0, sizeof(mask), &mask))
|
||||
sLog->outError("Can't set used processors (hex): %x, error: %s", affinity, strerror(errno));
|
||||
LOG_ERROR("server", "Can't set used processors (hex): %x, error: %s", affinity, strerror(errno));
|
||||
else
|
||||
{
|
||||
CPU_ZERO(&mask);
|
||||
sched_getaffinity(0, sizeof(mask), &mask);
|
||||
sLog->outString("Using processors (bitmask, hex): %lx", *(__cpu_mask*)(&mask));
|
||||
LOG_INFO("server", "Using processors (bitmask, hex): %lx", *(__cpu_mask*)(&mask));
|
||||
}
|
||||
}
|
||||
|
||||
if (highPriority)
|
||||
{
|
||||
if (setpriority(PRIO_PROCESS, 0, PROCESS_HIGH_PRIORITY))
|
||||
sLog->outError("Can't set worldserver process priority class, error: %s", strerror(errno));
|
||||
LOG_ERROR("server", "Can't set worldserver process priority class, error: %s", strerror(errno));
|
||||
else
|
||||
sLog->outString("worldserver process priority class set to %i", getpriority(PRIO_PROCESS, 0));
|
||||
LOG_INFO("server", "worldserver process priority class set to %i", getpriority(PRIO_PROCESS, 0));
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -285,7 +281,7 @@ int Master::Run()
|
||||
std::string bindIp = sConfigMgr->GetOption<std::string>("BindIP", "0.0.0.0");
|
||||
if (sWorldSocketMgr->StartNetwork(worldPort, bindIp.c_str()) == -1)
|
||||
{
|
||||
sLog->outError("Failed to start network");
|
||||
LOG_ERROR("server", "Failed to start network");
|
||||
World::StopNow(ERROR_EXIT_CODE);
|
||||
// go down and shutdown the server
|
||||
}
|
||||
@@ -293,7 +289,7 @@ int Master::Run()
|
||||
// set server online (allow connecting now)
|
||||
LoginDatabase.DirectPExecute("UPDATE realmlist SET flag = flag & ~%u, population = 0 WHERE id = '%u'", REALM_FLAG_INVALID, realmID);
|
||||
|
||||
sLog->outString("%s (worldserver-daemon) ready...", GitRevision::GetFullVersion());
|
||||
LOG_INFO("server", "%s (worldserver-daemon) ready...", GitRevision::GetFullVersion());
|
||||
|
||||
// when the main thread closes the singletons get unloaded
|
||||
// since worldrunnable uses them, it will crash if unloaded after master
|
||||
@@ -322,7 +318,7 @@ int Master::Run()
|
||||
|
||||
_StopDB();
|
||||
|
||||
sLog->outString("Halting process...");
|
||||
LOG_INFO("server", "Halting process...");
|
||||
|
||||
if (cliThread)
|
||||
{
|
||||
@@ -388,8 +384,6 @@ bool Master::_StartDB()
|
||||
{
|
||||
MySQL::Library_Init();
|
||||
|
||||
sLog->SetLogDB(false);
|
||||
|
||||
// Load databases
|
||||
DatabaseLoader loader;
|
||||
loader
|
||||
@@ -404,7 +398,7 @@ bool Master::_StartDB()
|
||||
realmID = sConfigMgr->GetOption<int32>("RealmID", 0);
|
||||
if (!realmID)
|
||||
{
|
||||
sLog->outError("Realm ID not defined in configuration file");
|
||||
LOG_ERROR("server", "Realm ID not defined in configuration file");
|
||||
return false;
|
||||
}
|
||||
else if (realmID > 255)
|
||||
@@ -414,13 +408,11 @@ bool Master::_StartDB()
|
||||
* with a size of uint8 we can "only" store up to 255 realms
|
||||
* anything further the client will behave anormaly
|
||||
*/
|
||||
sLog->outError("Realm ID must range from 1 to 255");
|
||||
LOG_ERROR("server", "Realm ID must range from 1 to 255");
|
||||
return false;
|
||||
}
|
||||
sLog->outString("Realm running as realm ID %d", realmID);
|
||||
|
||||
///- Initialize the DB logging system
|
||||
sLog->SetRealmID(realmID);
|
||||
LOG_INFO("server", "Realm running as realm ID %d", realmID);
|
||||
|
||||
///- Clean the database before starting
|
||||
ClearOnlineAccounts();
|
||||
@@ -430,7 +422,7 @@ bool Master::_StartDB()
|
||||
|
||||
sWorld->LoadDBVersion();
|
||||
|
||||
sLog->outString("Using World DB: %s", sWorld->GetDBVersion());
|
||||
LOG_INFO("server", "Using World DB: %s", sWorld->GetDBVersion());
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -54,11 +54,11 @@ void RARunnable::run()
|
||||
|
||||
if (acceptor.open(listenAddress, m_Reactor) == -1)
|
||||
{
|
||||
sLog->outError("Trinity RA can not bind to port %d on %s (possible error: port already in use)", raPort, stringIp.c_str());
|
||||
LOG_ERROR("server", "Trinity RA can not bind to port %d on %s (possible error: port already in use)", raPort, stringIp.c_str());
|
||||
return;
|
||||
}
|
||||
|
||||
sLog->outString("Starting Trinity RA on port %d on %s", raPort, stringIp.c_str());
|
||||
LOG_INFO("server", "Starting Trinity RA on port %d on %s", raPort, stringIp.c_str());
|
||||
|
||||
while (!World::IsStopped())
|
||||
{
|
||||
@@ -68,6 +68,6 @@ void RARunnable::run()
|
||||
}
|
||||
|
||||
#if defined(ENABLE_EXTRAS) && defined(ENABLE_EXTRA_LOGS)
|
||||
sLog->outStaticDebug("Trinity RA thread exiting");
|
||||
LOG_DEBUG("server", "Trinity RA thread exiting");
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -33,18 +33,18 @@ int RASocket::open(void*)
|
||||
|
||||
if (peer().get_remote_addr(remoteAddress) == -1)
|
||||
{
|
||||
sLog->outError("RASocket::open: peer().get_remote_addr error is %s", ACE_OS::strerror(errno));
|
||||
LOG_ERROR("server", "RASocket::open: peer().get_remote_addr error is %s", ACE_OS::strerror(errno));
|
||||
return -1;
|
||||
}
|
||||
|
||||
sLog->outRemote("Incoming connection from %s", remoteAddress.get_host_addr());
|
||||
LOG_INFO("network", "Incoming connection from %s", remoteAddress.get_host_addr());
|
||||
|
||||
return activate();
|
||||
}
|
||||
|
||||
int RASocket::handle_close(ACE_HANDLE /*handle*/, ACE_Reactor_Mask /*mask*/)
|
||||
{
|
||||
sLog->outRemote("Closing connection");
|
||||
LOG_INFO("network", "Closing connection");
|
||||
peer().close_reader();
|
||||
wait();
|
||||
// While the above wait() will wait for the ::svc() to finish, it will not wait for the async event
|
||||
@@ -120,7 +120,7 @@ int RASocket::recv_line(std::string& out_line)
|
||||
|
||||
if (recv_line(message_block) == -1)
|
||||
{
|
||||
sLog->outRemote("Recv error %s", ACE_OS::strerror(errno));
|
||||
LOG_INFO("network", "Recv error %s", ACE_OS::strerror(errno));
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -134,7 +134,7 @@ int RASocket::process_command(const std::string& command)
|
||||
if (command.length() == 0)
|
||||
return 0;
|
||||
|
||||
sLog->outRemote("Got command: %s", command.c_str());
|
||||
LOG_INFO("network", "Got command: %s", command.c_str());
|
||||
|
||||
// handle quit, exit and logout commands to terminate connection
|
||||
if (command == "quit" || command == "exit" || command == "logout")
|
||||
@@ -184,7 +184,7 @@ int RASocket::check_access_level(const std::string& user)
|
||||
|
||||
if (!result)
|
||||
{
|
||||
sLog->outRemote("User %s does not exist in database", user.c_str());
|
||||
LOG_INFO("network", "User %s does not exist in database", user.c_str());
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -192,12 +192,12 @@ int RASocket::check_access_level(const std::string& user)
|
||||
|
||||
if (fields[1].GetUInt8() < _minLevel)
|
||||
{
|
||||
sLog->outRemote("User %s has no privilege to login", user.c_str());
|
||||
LOG_INFO("network", "User %s has no privilege to login", user.c_str());
|
||||
return -1;
|
||||
}
|
||||
else if (fields[2].GetInt32() != -1)
|
||||
{
|
||||
sLog->outRemote("User %s has to be assigned on all realms (with RealmID = '-1')", user.c_str());
|
||||
LOG_INFO("network", "User %s has to be assigned on all realms (with RealmID = '-1')", user.c_str());
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -225,7 +225,7 @@ int RASocket::check_password(const std::string& user, const std::string& pass)
|
||||
return 0;
|
||||
}
|
||||
|
||||
sLog->outRemote("Wrong password for user: %s", user.c_str());
|
||||
LOG_INFO("commands.ra", "Wrong password for user: %s", user.c_str());
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -245,7 +245,7 @@ int RASocket::authenticate()
|
||||
if (recv_line(pass) == -1)
|
||||
return -1;
|
||||
|
||||
sLog->outRemote("Login attempt for user: %s", user.c_str());
|
||||
LOG_INFO("network", "Login attempt for user: %s", user.c_str());
|
||||
|
||||
if (check_access_level(user) == -1)
|
||||
return -1;
|
||||
@@ -253,7 +253,7 @@ int RASocket::authenticate()
|
||||
if (check_password(user, pass) == -1)
|
||||
return -1;
|
||||
|
||||
sLog->outRemote("User login: %s", user.c_str());
|
||||
LOG_INFO("network", "User login: %s", user.c_str());
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -286,7 +286,7 @@ int RASocket::subnegotiate()
|
||||
|
||||
if (n >= 1024)
|
||||
{
|
||||
sLog->outRemote("RASocket::subnegotiate: allocated buffer 1024 bytes was too small for negotiation packet, size: %u", uint32(n));
|
||||
LOG_INFO("network", "RASocket::subnegotiate: allocated buffer 1024 bytes was too small for negotiation packet, size: %u", uint32(n));
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -320,7 +320,7 @@ int RASocket::subnegotiate()
|
||||
|
||||
uint8 param = buf[++i];
|
||||
ss << uint32(param);
|
||||
sLog->outRemote(ss.str().c_str());
|
||||
LOG_INFO("network", ss.str().c_str());
|
||||
}
|
||||
++i;
|
||||
}
|
||||
@@ -386,7 +386,7 @@ void RASocket::zprint(void* callbackArg, const char* szText)
|
||||
ACE_Time_Value tv = ACE_Time_Value::zero;
|
||||
if (socket->putq(mb, &tv) == -1)
|
||||
{
|
||||
sLog->outRemote("Failed to enqueue message, queue is full or closed. Error is %s", ACE_OS::strerror(errno));
|
||||
LOG_INFO("network", "Failed to enqueue message, queue is full or closed. Error is %s", ACE_OS::strerror(errno));
|
||||
mb->release();
|
||||
}
|
||||
}
|
||||
@@ -407,7 +407,7 @@ void RASocket::commandFinished(void* callbackArg, bool /*success*/)
|
||||
if (socket->putq(mb->duplicate()) == -1)
|
||||
{
|
||||
// getting here is bad, command can't be marked as complete
|
||||
//sLog->outDebug(LOG_FILTER_REMOTECOMMAND, "Failed to enqueue command end message. Error is %s", ACE_OS::strerror(errno));
|
||||
//LOG_DEBUG("misc", "Failed to enqueue command end message. Error is %s", ACE_OS::strerror(errno));
|
||||
}
|
||||
|
||||
mb->release();
|
||||
|
||||
@@ -64,8 +64,6 @@ void WorldRunnable::run()
|
||||
#endif
|
||||
}
|
||||
|
||||
sLog->SetLogDB(false);
|
||||
|
||||
sScriptMgr->OnShutdown();
|
||||
|
||||
sWorld->KickAll(); // save and kick all players
|
||||
@@ -87,7 +85,7 @@ void WorldRunnable::run()
|
||||
|
||||
void AuctionListingRunnable::run()
|
||||
{
|
||||
sLog->outString("Starting up Auction House Listing thread...");
|
||||
LOG_INFO("server", "Starting up Auction House Listing thread...");
|
||||
while (!World::IsStopped())
|
||||
{
|
||||
if (AsyncAuctionListingMgr::IsAuctionListingAllowed())
|
||||
@@ -125,5 +123,5 @@ void AuctionListingRunnable::run()
|
||||
}
|
||||
acore::Thread::Sleep(1);
|
||||
}
|
||||
sLog->outString("Auction House Listing thread exiting without problems.");
|
||||
LOG_INFO("server", "Auction House Listing thread exiting without problems.");
|
||||
}
|
||||
|
||||
@@ -449,246 +449,6 @@ SetAllCreaturesWithWaypointMovementActive = 0
|
||||
|
||||
PidFile = ""
|
||||
|
||||
#
|
||||
# LogLevel
|
||||
# Description: Server console level of logging
|
||||
# Default: 1 - (Basic)
|
||||
# 0 - (Minimum)
|
||||
# 2 - (Detail)
|
||||
# 3 - (Full/Debug)
|
||||
|
||||
LogLevel = 1
|
||||
|
||||
#
|
||||
# LogFile
|
||||
# Description: Log file for main server log.
|
||||
# Default: "Server.log" - (Enabled)
|
||||
# "" - (Disabled)
|
||||
|
||||
LogFile = "Server.log"
|
||||
|
||||
#
|
||||
# LogTimestamp
|
||||
# Description: Append timestamp to the server log file name.
|
||||
# Logname_YYYY-MM-DD_HH-MM-SS.Ext for Logname.Ext
|
||||
# Default: 0 - (Disabled)
|
||||
# 1 - (Enabled)
|
||||
|
||||
LogTimestamp = 0
|
||||
|
||||
#
|
||||
# LogFileLevel
|
||||
# Description: Server file level of logging
|
||||
# Default: 0 - (Minimum)
|
||||
# 1 - (Basic)
|
||||
# 2 - (Detail)
|
||||
# 3 - (Full/Debug)
|
||||
|
||||
LogFileLevel = 0
|
||||
|
||||
#
|
||||
# Debug Log Mask
|
||||
# Description: Bitmask that determines which debug log output (level 3)
|
||||
# will be logged.
|
||||
# Possible flags:
|
||||
# 1 - Anything related to units that doesn't fit in other
|
||||
# categories.
|
||||
# 2 - Anything related to pets.
|
||||
# 4 - Anything related to vehicles.
|
||||
# 8 - Anything related to C++ AI, instance scripts, etc.
|
||||
# 16 - Anything related to DB AI, such as SAI, EAI, CreatureAI
|
||||
# 32 - Anything related to DB map scripts
|
||||
# 64 - Anything related to network input/output,
|
||||
# such as packet handlers and netcode logs
|
||||
# 128 - Anything related to the spellsystem and aurasystem
|
||||
# 256 - Anything related to the achievement system
|
||||
# 512 - Anything related to the condition system
|
||||
# 1024 - Anything related to the pool system
|
||||
# 2048 - Anything related to the auction house
|
||||
# 4096 - Anything related to arena's and battlegrounds
|
||||
# 8192 - Anything related to outdoor PVP
|
||||
# 16384 - Anything related to the chat system
|
||||
# 32768 - Anything related to the LFG system
|
||||
# 65536 - Anything related to maps, instances (not scripts),
|
||||
# grids, cells, visibility, etc.
|
||||
# 131072 - Anything related to player loading from DB
|
||||
# (Player::_LoadXXX functions)
|
||||
# 262144 - Anything related to items
|
||||
# 524288 - Anything related to player skills
|
||||
# (do not confuse with spells)
|
||||
# 1048576 - Anything related to loot
|
||||
# 2097152 - Anything related to guilds
|
||||
# 4194304 - Anything related to transports
|
||||
# 8388608 - Anything related to Warden anti cheat
|
||||
# 67108864 - Whenever KickPlayer() or CloseSocket() are called
|
||||
#
|
||||
# Simply add the values together to create a bitmask.
|
||||
# For more info see enum DebugLogFilters in Log.h
|
||||
#
|
||||
# Default: 0 (nothing)
|
||||
|
||||
DebugLogMask = 0
|
||||
|
||||
#
|
||||
# PacketLogFile
|
||||
# Description: Binary packet logging file for the world server.
|
||||
# Filename extension must be .bin to be parsable with WowPacketParser.
|
||||
# Example: "World.bin" - (Enabled)
|
||||
# Default: "" - (Disabled)
|
||||
|
||||
PacketLogFile = ""
|
||||
|
||||
#
|
||||
# DBErrorLogFile
|
||||
# Description: Log file for database errors.
|
||||
# Default: "DBErrors.log" - (Enabled)
|
||||
# "" - (Disabled)
|
||||
|
||||
DBErrorLogFile = "DBErrors.log"
|
||||
|
||||
#
|
||||
# CharLogFile
|
||||
# Description: Log file for character operations
|
||||
# Default: "Char.log" - (Enabled)
|
||||
# "" - (Disabled)
|
||||
|
||||
CharLogFile = "Char.log"
|
||||
|
||||
#
|
||||
# CharLogTimestamp
|
||||
# Description: Append timestamp to the character log file name.
|
||||
# Logname_YYYY-MM-DD_HH-MM-SS.Ext for Logname.Ext
|
||||
# Default: 0 - (Disabled)
|
||||
# 1 - (Enabled)
|
||||
|
||||
CharLogTimestamp = 0
|
||||
|
||||
#
|
||||
# CharLogDump
|
||||
# Description: Write a character dump in the CharLogFile before deleting it.
|
||||
# For restoration, copy character data from log file starting from
|
||||
# line == START DUMP == to line == END DUMP == (exclusive)
|
||||
# and load it using the "pdump load" command.
|
||||
# Default: 0 - (Disabled)
|
||||
# 1 - (Enabled)
|
||||
|
||||
CharLogDump = 0
|
||||
|
||||
#
|
||||
# CharLogDump.Separate
|
||||
# Description: Write character dump to separate files files rather than adding it to the
|
||||
# CharLogFile.
|
||||
# Default: 0 - (Disabled)
|
||||
# 1 - (Enabled)
|
||||
|
||||
CharLogDump.Separate = 0
|
||||
|
||||
#
|
||||
# CharLogDump.SeparateDir
|
||||
# Description: Write dump files into the sub folder within the log folder.
|
||||
# Example: "chardumps" - (Enabled)
|
||||
# Default: "" - (Disabled)
|
||||
|
||||
CharLogDump.SeparateDir = ""
|
||||
|
||||
#
|
||||
# GmLogFile
|
||||
# Description: Log file for gamemaster commands.
|
||||
# Default: "GM.log" - (Enabled)
|
||||
# "" - (Disabled)
|
||||
|
||||
GmLogFile = "GM.log"
|
||||
|
||||
#
|
||||
# GmLogTimestamp
|
||||
# Description: Append timestamp to the gamemaster log file name.
|
||||
# Logname_YYYY-MM-DD_HH-MM-SS.Ext for Logname.Ext
|
||||
# Default: 0 - (Disabled)
|
||||
# 1 - (Enabled)
|
||||
|
||||
GmLogTimestamp = 0
|
||||
|
||||
#
|
||||
# GmLogPerAccount
|
||||
# Description: Create a log file per gamemaster account.
|
||||
# Important: Logs not created if GmLogFile is not set.
|
||||
# Default: 0 - (Disabled)
|
||||
# 1 - (Enabled)
|
||||
|
||||
GmLogPerAccount = 0
|
||||
|
||||
#
|
||||
# RaLogFile
|
||||
# Description: Log file for Remote Access commands.
|
||||
# Default: "RA.log" - (Enabled)
|
||||
# "" - (Disabled)
|
||||
|
||||
RaLogFile = "RA.log"
|
||||
|
||||
#
|
||||
# ArenaLogFile
|
||||
# Description: Log file for arena fights and arena team creations.
|
||||
# Example: "Arena.log" - (Enabled)
|
||||
# Default: "" - (Disabled)
|
||||
|
||||
ArenaLogFile = ""
|
||||
|
||||
#
|
||||
# ArenaLog.ExtendedInfo
|
||||
# Description: Include extended info to ArenaLogFile for each player after rated arena
|
||||
# matches (guid, name, team, IP, healing/damage done, killing blows).
|
||||
# Default: 0 - (Disabled)
|
||||
# 1 - (Enabled)
|
||||
|
||||
ArenaLog.ExtendedInfo = 0
|
||||
|
||||
#
|
||||
# SQLDeveloperLogFile
|
||||
# Description: Log file for core-generated SQL queries/dumps
|
||||
# Example: "SQLDev.log" - (Enabled)
|
||||
# Default: "" - (Disabled)
|
||||
|
||||
SQLDeveloperLogFile = ""
|
||||
|
||||
#
|
||||
# SQLDriverLogFile
|
||||
# Description: Log file for SQL driver events.
|
||||
# Example: "WorldSQLDriver.log" - (Enabled)
|
||||
# Default: "" - (Disabled)
|
||||
|
||||
SQLDriverLogFile = ""
|
||||
|
||||
#
|
||||
# SQLDriverQueryLogging
|
||||
# Description: Log SQL queries to the SQLDriverLogFile and console.
|
||||
# Default: 0 - (Disabled, Query errors only)
|
||||
# 1 - (Enabled, Full query logging - may have performance impact)
|
||||
|
||||
SQLDriverQueryLogging = 0
|
||||
|
||||
#
|
||||
# LogColors
|
||||
# Description: Colors for log messages (Format: "normal basic detail debug").
|
||||
# Colors: 0 - Black
|
||||
# 1 - Red
|
||||
# 2 - Green
|
||||
# 3 - Brown
|
||||
# 4 - Blue
|
||||
# 5 - Magenta
|
||||
# 6 - Cyan
|
||||
# 7 - Grey
|
||||
# 8 - Yellow
|
||||
# 9 - Lred
|
||||
# 10 - Lgreen
|
||||
# 11 - Lblue
|
||||
# 12 - Lmagenta
|
||||
# 13 - Lcyan
|
||||
# 14 - White
|
||||
# Example: "13 11 9 5" - (Enabled)
|
||||
# Default: "" - (Disabled)
|
||||
|
||||
LogColors = ""
|
||||
|
||||
#
|
||||
# EnableLogDB
|
||||
# Description: Write log messages to database (LogDatabaseInfo).
|
||||
@@ -696,146 +456,6 @@ LogColors = ""
|
||||
# 1 - (Enabled)
|
||||
|
||||
EnableLogDB = 0
|
||||
|
||||
#
|
||||
# DBLogLevel
|
||||
# Description: Log level of databases logging.
|
||||
# Default: 2 - (Detail)
|
||||
# 0 - (Minimum)
|
||||
# 1 - (Basic)
|
||||
# 3 - (Full/Debug)
|
||||
|
||||
DBLogLevel = 2
|
||||
|
||||
#
|
||||
# LogDB.Char
|
||||
# Description: Log character operations to database.
|
||||
# Default: 0 - (Disabled)
|
||||
# 1 - (Enabled)
|
||||
|
||||
LogDB.Char = 0
|
||||
|
||||
#
|
||||
# LogDB.GM
|
||||
# Description: Log gamemaster commands to database.
|
||||
# Default: 0 - (Disabled)
|
||||
# 1 - (Enabled)
|
||||
|
||||
LogDB.GM = 0
|
||||
|
||||
#
|
||||
# LogDB.RA
|
||||
# Description: Log remote access events to database.
|
||||
# Default: 0 - (Disabled)
|
||||
# 1 - (Enabled)
|
||||
|
||||
LogDB.RA = 0
|
||||
|
||||
#
|
||||
# LogDB.World
|
||||
# Description: Log world server packets to database.
|
||||
# Default: 0 - (Disabled)
|
||||
# 1 - (Enabled, May have performance impact)
|
||||
|
||||
LogDB.World = 0
|
||||
|
||||
#
|
||||
# LogDB.Chat
|
||||
# Description: Log chat messages to database.
|
||||
# Default: 0 - (Disabled)
|
||||
# 1 - (Enabled)
|
||||
|
||||
LogDB.Chat = 0
|
||||
|
||||
# ChatLogFile
|
||||
# Description: Log file for chat logs.
|
||||
# Default: "Chat.log" - (Enabled)
|
||||
# "" - (Disabled)
|
||||
|
||||
ChatLogFile = "Chat.log"
|
||||
|
||||
# ChatLogTimestamp
|
||||
# Description: Append timestamp to the chat log file name.
|
||||
# Logname_YYYY-MM-DD_HH-MM-SS.Ext for Logname.Ext
|
||||
# Default: 0 - (Disabled)
|
||||
# 1 - (Enabled)
|
||||
|
||||
ChatLogTimestamp = 0
|
||||
|
||||
#
|
||||
# ChatLogs.Channel
|
||||
# Description: Log custom channel chat.
|
||||
# Default: 0 - (Disabled)
|
||||
# 1 - (Enabled)
|
||||
|
||||
ChatLogs.Channel = 0
|
||||
|
||||
#
|
||||
# ChatLogs.Whisper
|
||||
# Description: Log whispers between players.
|
||||
# Default: 0 - (Disabled)
|
||||
# 1 - (Enabled)
|
||||
|
||||
ChatLogs.Whisper = 0
|
||||
|
||||
#
|
||||
# ChatLogs.SysChan
|
||||
# Description: Log system channel messages.
|
||||
# Default: 0 - (Disabled)
|
||||
# 1 - (Enabled)
|
||||
|
||||
ChatLogs.SysChan = 0
|
||||
|
||||
#
|
||||
# ChatLogs.Party
|
||||
# Description: Log party chat.
|
||||
# Default: 0 - (Disabled)
|
||||
# 1 - (Enabled)
|
||||
|
||||
ChatLogs.Party = 0
|
||||
|
||||
#
|
||||
# ChatLogs.Raid
|
||||
# Description: Log raid chat.
|
||||
# Default: 0 - (Disabled)
|
||||
# 1 - (Enabled)
|
||||
|
||||
ChatLogs.Raid = 0
|
||||
|
||||
#
|
||||
# ChatLogs.Guild
|
||||
# Description: Log guild chat.
|
||||
# Default: 0 - (Disabled)
|
||||
# 1 - (Enabled)
|
||||
|
||||
ChatLogs.Guild = 0
|
||||
|
||||
#
|
||||
# ChatLogs.Public
|
||||
# Description: Log public chat (say/yell/emote).
|
||||
# Default: 0 - (Disabled)
|
||||
# 1 - (Enabled)
|
||||
|
||||
ChatLogs.Public = 0
|
||||
|
||||
#
|
||||
# WARNING: enabling this might cause issues to your addon channel
|
||||
# ChatLogs.Addon
|
||||
# Description: Log addon messages.
|
||||
# Default: 0 - (Disabled)
|
||||
# 1 - (Enabled)
|
||||
|
||||
ChatLogs.Addon = 0
|
||||
|
||||
#
|
||||
# ChatLogs.BattleGround
|
||||
# Description: Log battleground chat.
|
||||
# Default: 0 - (Disabled)
|
||||
# 1 - (Enabled)
|
||||
|
||||
ChatLogs.BattleGround = 0
|
||||
|
||||
#
|
||||
###################################################################################################
|
||||
|
||||
###################################################################################################
|
||||
@@ -1618,15 +1238,6 @@ Warden.NumLuaChecks = 1
|
||||
|
||||
Warden.NumOtherChecks = 7
|
||||
|
||||
#
|
||||
# Warden.LogFile
|
||||
# Description: Client check fails will be logged here.
|
||||
# Default: "" - (Disabled)
|
||||
# "Warden.log" - (Enabled)
|
||||
#
|
||||
|
||||
Warden.LogFile = ""
|
||||
|
||||
#
|
||||
# Warden.ClientResponseDelay
|
||||
# Description: Time (in seconds) before client is getting disconnecting for not responding.
|
||||
@@ -3706,6 +3317,168 @@ FFAPvPTimer = 30
|
||||
#
|
||||
###################################################################################################
|
||||
|
||||
###################################################################################################
|
||||
# LOGGING SYSTEM SETTINGS
|
||||
#
|
||||
# Appender config values: Given an appender "name"
|
||||
# Appender.name
|
||||
# Description: Defines 'where to log'.
|
||||
# Format: Type,LogLevel,Flags,optional1,optional2,optional3
|
||||
#
|
||||
# Type
|
||||
# 0 - (None)
|
||||
# 1 - (Console)
|
||||
# 2 - (File)
|
||||
# 3 - (DB)
|
||||
#
|
||||
# LogLevel
|
||||
# 0 - (Disabled)
|
||||
# 1 - (Fatal)
|
||||
# 2 - (Error)
|
||||
# 3 - (Warning)
|
||||
# 4 - (Info)
|
||||
# 5 - (Debug)
|
||||
# 6 - (Trace)
|
||||
#
|
||||
# Flags:
|
||||
# 0 - None
|
||||
# 1 - Prefix Timestamp to the text
|
||||
# 2 - Prefix Log Level to the text
|
||||
# 4 - Prefix Log Filter type to the text
|
||||
# 8 - Append timestamp to the log file name. Format: YYYY-MM-DD_HH-MM-SS
|
||||
# (Only used with Type = 2)
|
||||
# 16 - Make a backup of existing file before overwrite
|
||||
# (Only used with Mode = w)
|
||||
#
|
||||
# Colors (read as optional1 if Type = Console)
|
||||
# Format: "fatal error warn info debug trace"
|
||||
# 0 - BLACK
|
||||
# 1 - RED
|
||||
# 2 - GREEN
|
||||
# 3 - BROWN
|
||||
# 4 - BLUE
|
||||
# 5 - MAGENTA
|
||||
# 6 - CYAN
|
||||
# 7 - GREY
|
||||
# 8 - YELLOW
|
||||
# 9 - LRED
|
||||
# 10 - LGREEN
|
||||
# 11 - LBLUE
|
||||
# 12 - LMAGENTA
|
||||
# 13 - LCYAN
|
||||
# 14 - WHITE
|
||||
# Example: "1 9 3 6 5 8"
|
||||
#
|
||||
# File: Name of the file (read as optional1 if Type = File)
|
||||
# Allows to use one "%s" to create dynamic files
|
||||
#
|
||||
# Mode: Mode to open the file (read as optional2 if Type = File)
|
||||
# a - (Append)
|
||||
# w - (Overwrite)
|
||||
#
|
||||
# MaxFileSize: Maximum file size of the log file before creating a new log file
|
||||
# (read as optional3 if Type = File)
|
||||
# Size is measured in bytes expressed in a 64-bit unsigned integer.
|
||||
# Maximum value is 4294967295 (4 GB). Leave blank for no limit.
|
||||
# NOTE: Does not work with dynamic filenames.
|
||||
# Example: 536870912 (512 MB)
|
||||
#
|
||||
|
||||
Appender.Console=1,4,0,"1 9 3 6 5 8"
|
||||
Appender.Server=2,5,0,Server.log,w
|
||||
Appender.GM=2,5,15,gm_%s.log
|
||||
Appender.DBErrors=2,5,0,DBErrors.log
|
||||
|
||||
# Logger config values: Given a logger "name"
|
||||
# Logger.name
|
||||
# Description: Defines 'What to log'
|
||||
# Format: LogLevel,AppenderList
|
||||
#
|
||||
# LogLevel
|
||||
# 0 - (Disabled)
|
||||
# 1 - (Fatal)
|
||||
# 2 - (Error)
|
||||
# 3 - (Warning)
|
||||
# 4 - (Info)
|
||||
# 5 - (Debug)
|
||||
# 6 - (Trace)
|
||||
#
|
||||
# AppenderList: List of appenders linked to logger
|
||||
# (Using spaces as separator).
|
||||
#
|
||||
|
||||
Logger.root=2,Console Server
|
||||
Logger.server=4,Console Server
|
||||
Logger.commands.gm=4,Console GM
|
||||
Logger.scripts.hotswap=4,Console Server
|
||||
Logger.sql.sql=2,Console DBErrors
|
||||
Logger.sql.updates=4,Console Server
|
||||
Logger.mmaps=4,Server
|
||||
|
||||
#Logger.achievement=4,Console Server
|
||||
#Logger.addon=4,Console Server
|
||||
#Logger.ahbot=4,Console Server
|
||||
#Logger.auctionHouse=4,Console Server
|
||||
#Logger.bg.arena=4,Console Server
|
||||
#Logger.bg.battlefield=4,Console Server
|
||||
#Logger.bg.battleground=4,Console Server
|
||||
#Logger.bg.reportpvpafk=4,Console Server
|
||||
#Logger.chat.log=4,Console Server
|
||||
#Logger.calendar=4,Console Server
|
||||
#Logger.chat.system=4,Console Server
|
||||
#Logger.cheat=4,Console Server
|
||||
#Logger.commands.ra=4,Console Server
|
||||
#Logger.condition=4,Console Server
|
||||
#Logger.entities.faction=4,Console Server
|
||||
#Logger.entities.gameobject=4,Console Server
|
||||
#Logger.entities.pet=4,Console Server
|
||||
#Logger.entities.player=4,Console Server
|
||||
#Logger.entities.player.character=4,Console Server
|
||||
#Logger.entities.player.dump=4,Console Server
|
||||
#Logger.entities.player.items=4,Console Server
|
||||
#Logger.entities.player.loading=4,Console Server
|
||||
#Logger.entities.player.skills=4,Console Server
|
||||
#Logger.entities.transport=4,Console Server
|
||||
#Logger.entities.unit=4,Console Server
|
||||
#Logger.entities.unit.ai=4,Console Server
|
||||
#Logger.entities.vehicle=4,Console Server
|
||||
#Logger.gameevent=4,Console Server
|
||||
#Logger.guild=4,Console Server
|
||||
#Logger.lfg=4,Console Server
|
||||
#Logger.loot=4,Console Server
|
||||
#Logger.maps.script=4,Console Server
|
||||
#Logger.maps=4,Console Server
|
||||
#Logger.misc=4,Console Server
|
||||
#Logger.mmaps.tiles=4,Console Server
|
||||
#Logger.movement.flightpath=4,Console Server
|
||||
#Logger.movement.motionmaster=4,Console Server
|
||||
#Logger.movement.splinechain=4,Console Server
|
||||
#Logger.network=4,Console Server
|
||||
#Logger.network.kick=4,Console Server
|
||||
#Logger.network.opcode=4,Console Server
|
||||
#Logger.network.soap=4,Console Server
|
||||
#Logger.outdoorpvp=4,Console Server
|
||||
#Logger.pool=4,Console Server
|
||||
#Logger.rbac=4,Console Server
|
||||
#Logger.scripts=4,Console Server
|
||||
#Logger.scripts.ai=4,Console Server
|
||||
#Logger.scripts.ai.escortai=4,Console Server
|
||||
#Logger.scripts.ai.followerai=4,Console Server
|
||||
#Logger.scripts.ai.petai=4,Console Server
|
||||
#Logger.scripts.ai.sai=4,Console Server
|
||||
#Logger.scripts.cos=4,Console Server
|
||||
#Logger.server.authserver=4,Console Server
|
||||
#Logger.spells=4,Console Server
|
||||
#Logger.spells.aura.effect=4,Console Server
|
||||
#Logger.spells.aura.effect.nospell=4,Console Server
|
||||
#Logger.spells.effect=4,Console Server
|
||||
#Logger.spells.effect.nospell=4,Console Server
|
||||
#Logger.sql.dev=4,Console Server
|
||||
#Logger.sql.driver=4,Console Server
|
||||
#Logger.warden=4,Console Server
|
||||
#Logger.vehicles=4,Console Server
|
||||
###################################################################################################
|
||||
|
||||
###################################################################################################
|
||||
# PACKET SPOOF PROTECTION SETTINGS
|
||||
#
|
||||
|
||||
Reference in New Issue
Block a user