[Code] EQEmuLogSys Global to Singleton Cleanup

This commit is contained in:
Chris Miles
2025-06-20 19:27:54 -05:00
parent 1be7e56b86
commit 1a662abaef
47 changed files with 503 additions and 504 deletions
+7 -7
View File
@@ -835,9 +835,9 @@ Json::Value ApiGetLogsysCategories(EQ::Net::WebsocketServerConnection *connectio
row["log_category_id"] = i;
row["log_category_description"] = Logs::LogCategoryName[i];
row["log_to_console"] = LogSys.log_settings[i].log_to_console;
row["log_to_file"] = LogSys.log_settings[i].log_to_file;
row["log_to_gmsay"] = LogSys.log_settings[i].log_to_gmsay;
row["log_to_console"] = EQEmuLogSys::Instance()->log_settings[i].log_to_console;
row["log_to_file"] = EQEmuLogSys::Instance()->log_settings[i].log_to_file;
row["log_to_gmsay"] = EQEmuLogSys::Instance()->log_settings[i].log_to_gmsay;
response.append(row);
}
@@ -866,15 +866,15 @@ Json::Value ApiSetLoggingLevel(EQ::Net::WebsocketServerConnection *connection, J
if (logging_category < Logs::LogCategory::MaxCategoryID &&
logging_category > Logs::LogCategory::None
) {
LogSys.log_settings[logging_category].log_to_console = logging_level;
EQEmuLogSys::Instance()->log_settings[logging_category].log_to_console = logging_level;
response["status"] = "Category log level updated";
}
if (logging_level > 0) {
LogSys.log_settings[logging_category].is_category_enabled = 1;
EQEmuLogSys::Instance()->log_settings[logging_category].is_category_enabled = 1;
}
else {
LogSys.log_settings[logging_category].is_category_enabled = 0;
EQEmuLogSys::Instance()->log_settings[logging_category].is_category_enabled = 0;
}
return response;
@@ -882,7 +882,7 @@ Json::Value ApiSetLoggingLevel(EQ::Net::WebsocketServerConnection *connection, J
void RegisterApiLogEvent(std::unique_ptr<EQ::Net::WebsocketServer> &server)
{
LogSys.SetConsoleHandler(
EQEmuLogSys::Instance()->SetConsoleHandler(
[&](uint16 log_category, const std::string &msg) {
Json::Value data;
data["log_category"] = log_category;
+1 -1
View File
@@ -259,7 +259,7 @@ void ZoneCLI::BenchmarkDatabuckets(int argc, char **argv, argh::parser &cmd, std
}
if (std::getenv("DEBUG")) {
LogSys.SetDatabase(&database)->LoadLogDatabaseSettings();
EQEmuLogSys::Instance()->SetDatabase(&database)->LoadLogDatabaseSettings();
}
auto start_time = std::chrono::high_resolution_clock::now();
+5 -5
View File
@@ -41,11 +41,11 @@ inline void RunTest(const std::string &test_name, int expected, int actual)
extern Zone *zone;
inline void SetupZone(std::string zone_short_name, uint32 instance_id = 0) {
LogSys.SilenceConsoleLogging();
EQEmuLogSys::Instance()->SilenceConsoleLogging();
LogSys.log_settings[Logs::ZoneState].log_to_console = std::getenv("DEBUG") ? 3 : 0;
LogSys.log_settings[Logs::Info].log_to_console = std::getenv("DEBUG") ? 3 : 0;
LogSys.log_settings[Logs::Spawns].log_to_console = std::getenv("DEBUG") ? 3 : 0;
EQEmuLogSys::Instance()->log_settings[Logs::ZoneState].log_to_console = std::getenv("DEBUG") ? 3 : 0;
EQEmuLogSys::Instance()->log_settings[Logs::Info].log_to_console = std::getenv("DEBUG") ? 3 : 0;
EQEmuLogSys::Instance()->log_settings[Logs::Spawns].log_to_console = std::getenv("DEBUG") ? 3 : 0;
// boot shell zone for testing
Zone::Bootup(ZoneID(zone_short_name), 0, false);
@@ -53,5 +53,5 @@ inline void SetupZone(std::string zone_short_name, uint32 instance_id = 0) {
entity_list.Process();
entity_list.MobProcess();
LogSys.EnableConsoleLogging();
EQEmuLogSys::Instance()->EnableConsoleLogging();
}
+2 -2
View File
@@ -16,7 +16,7 @@ void ZoneCLI::TestDataBuckets(int argc, char **argv, argh::parser &cmd, std::str
uint32 break_length = 50;
int failed_count = 0;
LogSys.SilenceConsoleLogging();
EQEmuLogSys::Instance()->SilenceConsoleLogging();
// boot shell zone for testing
Zone::Bootup(ZoneID("qrg"), 0, false);
@@ -25,7 +25,7 @@ void ZoneCLI::TestDataBuckets(int argc, char **argv, argh::parser &cmd, std::str
entity_list.Process();
entity_list.MobProcess();
LogSys.EnableConsoleLogging();
EQEmuLogSys::Instance()->EnableConsoleLogging();
std::cout << "===========================================\n";
std::cout << "\uFE0F> Running DataBuckets Tests...\n";
+4 -4
View File
@@ -68,7 +68,7 @@ void ZoneCLI::TestNpcHandins(int argc, char **argv, argh::parser &cmd, std::stri
return;
}
LogSys.SilenceConsoleLogging();
EQEmuLogSys::Instance()->SilenceConsoleLogging();
Zone::Bootup(ZoneID("qrg"), 0, false);
zone->StopShutdownTimer();
@@ -426,10 +426,10 @@ void ZoneCLI::TestNpcHandins(int argc, char **argv, argh::parser &cmd, std::stri
std::map<std::string, uint32> required;
std::vector<EQ::ItemInstance *> items;
LogSys.EnableConsoleLogging();
EQEmuLogSys::Instance()->EnableConsoleLogging();
// turn this on to see debugging output
LogSys.log_settings[Logs::NpcHandin].log_to_console = std::getenv("DEBUG") ? 3 : 0;
EQEmuLogSys::Instance()->log_settings[Logs::NpcHandin].log_to_console = std::getenv("DEBUG") ? 3 : 0;
for (auto &test: test_cases) {
hand_ins.clear();
@@ -524,7 +524,7 @@ void ZoneCLI::TestNpcHandins(int argc, char **argv, argh::parser &cmd, std::stri
npc->ResetHandin();
if (LogSys.log_settings[Logs::NpcHandin].log_to_console > 0) {
if (EQEmuLogSys::Instance()->log_settings[Logs::NpcHandin].log_to_console > 0) {
std::cout << std::endl;
}
}
+4 -4
View File
@@ -16,7 +16,7 @@ void ZoneCLI::TestNpcHandinsMultiQuest(int argc, char **argv, argh::parser &cmd,
uint32 break_length = 50;
int failed_count = 0;
LogSys.SilenceConsoleLogging();
EQEmuLogSys::Instance()->SilenceConsoleLogging();
Zone::Bootup(ZoneID("qrg"), 0, false);
zone->StopShutdownTimer();
@@ -94,10 +94,10 @@ void ZoneCLI::TestNpcHandinsMultiQuest(int argc, char **argv, argh::parser &cmd,
std::map<std::string, uint32> required;
std::vector<EQ::ItemInstance *> items;
LogSys.EnableConsoleLogging();
EQEmuLogSys::Instance()->EnableConsoleLogging();
// turn this on to see debugging output
LogSys.log_settings[Logs::NpcHandin].log_to_console = std::getenv("DEBUG") ? 3 : 0;
EQEmuLogSys::Instance()->log_settings[Logs::NpcHandin].log_to_console = std::getenv("DEBUG") ? 3 : 0;
for (auto &test: test_cases) {
required.clear();
@@ -163,7 +163,7 @@ void ZoneCLI::TestNpcHandinsMultiQuest(int argc, char **argv, argh::parser &cmd,
npc->ResetHandin();
if (LogSys.log_settings[Logs::NpcHandin].log_to_console > 0) {
if (EQEmuLogSys::Instance()->log_settings[Logs::NpcHandin].log_to_console > 0) {
std::cout << std::endl;
}
}
+2 -2
View File
@@ -464,7 +464,7 @@ int Client::HandlePacket(const EQApplicationPacket *app)
OpcodeManager::EmuToName(app->GetOpcode()),
o->EmuToEQ(app->GetOpcode()) == 0 ? app->GetProtocolOpcode() : o->EmuToEQ(app->GetOpcode()),
app->Size(),
(LogSys.IsLogEnabled(Logs::Detail, Logs::PacketClientServer) ? DumpPacketToString(app) : "")
(EQEmuLogSys::Instance()->IsLogEnabled(Logs::Detail, Logs::PacketClientServer) ? DumpPacketToString(app) : "")
);
EmuOpcode opcode = app->GetOpcode();
@@ -5534,7 +5534,7 @@ void Client::Handle_OP_CrashDump(const EQApplicationPacket *app)
void Client::Handle_OP_CreateObject(const EQApplicationPacket *app)
{
if (LogSys.log_settings[Logs::Inventory].is_category_enabled)
if (EQEmuLogSys::Instance()->log_settings[Logs::Inventory].is_category_enabled)
LogInventory("Handle_OP_CreateObject() [psize: [{}]] [{}]", app->size, DumpPacketToString(app).c_str());
DropItem(EQ::invslot::slotCursor);
+9 -9
View File
@@ -76,7 +76,7 @@ void command_logs(Client *c, const Seperator *sep)
std::vector<std::string> gmsay;
for (int i = 0; i <= 2; i++) {
if (LogSys.log_settings[index].log_to_gmsay == i) {
if (EQEmuLogSys::Instance()->log_settings[index].log_to_gmsay == i) {
gmsay.emplace_back(std::to_string(i));
continue;
}
@@ -90,7 +90,7 @@ void command_logs(Client *c, const Seperator *sep)
std::vector<std::string> file;
for (int i = 0; i <= 2; i++) {
if (LogSys.log_settings[index].log_to_file == i) {
if (EQEmuLogSys::Instance()->log_settings[index].log_to_file == i) {
file.emplace_back(std::to_string(i));
continue;
}
@@ -104,7 +104,7 @@ void command_logs(Client *c, const Seperator *sep)
std::vector<std::string> console;
for (int i = 0; i <= 2; i++) {
if (LogSys.log_settings[index].log_to_console == i) {
if (EQEmuLogSys::Instance()->log_settings[index].log_to_console == i) {
console.emplace_back(std::to_string(i));
continue;
}
@@ -118,7 +118,7 @@ void command_logs(Client *c, const Seperator *sep)
std::vector<std::string> discord;
for (int i = 0; i <= 2; i++) {
if (LogSys.log_settings[index].log_to_discord == i) {
if (EQEmuLogSys::Instance()->log_settings[index].log_to_discord == i) {
discord.emplace_back(std::to_string(i));
continue;
}
@@ -206,16 +206,16 @@ void command_logs(Client *c, const Seperator *sep)
auto setting = Strings::ToUnsignedInt(sep->arg[4]);
if (is_console) {
LogSys.log_settings[category_id].log_to_console = setting;
EQEmuLogSys::Instance()->log_settings[category_id].log_to_console = setting;
}
else if (is_file) {
LogSys.log_settings[category_id].log_to_file = setting;
EQEmuLogSys::Instance()->log_settings[category_id].log_to_file = setting;
}
else if (is_gmsay) {
LogSys.log_settings[category_id].log_to_gmsay = setting;
EQEmuLogSys::Instance()->log_settings[category_id].log_to_gmsay = setting;
}
else if (is_discord) {
LogSys.log_settings[category_id].log_to_discord = setting;
EQEmuLogSys::Instance()->log_settings[category_id].log_to_discord = setting;
}
if (logs_set) {
@@ -231,7 +231,7 @@ void command_logs(Client *c, const Seperator *sep)
);
}
LogSys.log_settings[category_id].is_category_enabled = setting ? 1 : 0;
EQEmuLogSys::Instance()->log_settings[category_id].is_category_enabled = setting ? 1 : 0;
}
}
+4 -4
View File
@@ -14,9 +14,9 @@ void command_lootsim(Client *c, const Seperator *sep)
auto log_enabled = arguments > 3 ? Strings::ToUnsignedInt(sep->arg[4]) : false;
// temporarily disable loot logging unless set explicitly
LogSys.log_settings[Logs::Loot].log_to_console = log_enabled ? LogSys.log_settings[Logs::Loot].log_to_console : 0;
LogSys.log_settings[Logs::Loot].log_to_file = log_enabled ? LogSys.log_settings[Logs::Loot].log_to_file : 0;
LogSys.log_settings[Logs::Loot].log_to_gmsay = log_enabled ? LogSys.log_settings[Logs::Loot].log_to_gmsay : 0;
EQEmuLogSys::Instance()->log_settings[Logs::Loot].log_to_console = log_enabled ? EQEmuLogSys::Instance()->log_settings[Logs::Loot].log_to_console : 0;
EQEmuLogSys::Instance()->log_settings[Logs::Loot].log_to_file = log_enabled ? EQEmuLogSys::Instance()->log_settings[Logs::Loot].log_to_file : 0;
EQEmuLogSys::Instance()->log_settings[Logs::Loot].log_to_gmsay = log_enabled ? EQEmuLogSys::Instance()->log_settings[Logs::Loot].log_to_gmsay : 0;
auto npc_type = content_db.LoadNPCTypesData(npc_id);
if (npc_type) {
@@ -182,7 +182,7 @@ void command_lootsim(Client *c, const Seperator *sep)
);
c->SendChatLineBreak();
LogSys.LoadLogDatabaseSettings();
EQEmuLogSys::Instance()->LoadLogDatabaseSettings();
}
}
else {
+2 -2
View File
@@ -688,7 +688,7 @@ void Client::DropItem(int16 slot_id, bool recurse)
LogInventory("Error in InventoryProfile::CheckNoDrop() - returned 'true' for empty slot");
}
else {
if (LogSys.log_settings[Logs::Inventory].is_category_enabled) {
if (EQEmuLogSys::Instance()->log_settings[Logs::Inventory].is_category_enabled) {
LogInventory("DropItem() Hack detected - full item parse:");
LogInventory("depth: 0, Item: [{}] (id: [{}]), IsDroppable: [{}]",
(invalid_drop->GetItem() ? invalid_drop->GetItem()->Name : "null data"), invalid_drop->GetID(), (invalid_drop->IsDroppable(false) ? "true" : "false"));
@@ -720,7 +720,7 @@ void Client::DropItem(int16 slot_id, bool recurse)
// Take control of item in client inventory
auto* inst = m_inv.PopItem(slot_id);
if (inst) {
if (LogSys.log_settings[Logs::Inventory].is_category_enabled) {
if (EQEmuLogSys::Instance()->log_settings[Logs::Inventory].is_category_enabled) {
LogInventory("DropItem() Processing - full item parse:");
LogInventory(
"depth: 0, Item: [{}] (id: [{}]), IsDroppable: [{}]",
+1 -1
View File
@@ -292,7 +292,7 @@ void NPC::AddLootDrop(
auto item = new LootItem;
if (LogSys.log_settings[Logs::Loot].is_category_enabled == 1) {
if (EQEmuLogSys::Instance()->log_settings[Logs::Loot].is_category_enabled == 1) {
EQ::SayLinkEngine linker;
linker.SetLinkType(EQ::saylink::SayLinkItemData);
linker.SetItemData(item2);
+8 -9
View File
@@ -104,7 +104,6 @@ QueryServ *QServ = 0;
TaskManager *task_manager = 0;
NpcScaleManager *npc_scale_manager;
QuestParserCollection *parse = 0;
EQEmuLogSys LogSys;
ZoneEventScheduler event_scheduler;
WorldContentService content_service;
PathManager path;
@@ -128,13 +127,13 @@ bool CheckForCompatibleQuestPlugins();
int main(int argc, char **argv)
{
RegisterExecutablePlatform(ExePlatformZone);
LogSys.LoadLogSettingsDefaults();
EQEmuLogSys::Instance()->LoadLogSettingsDefaults();
set_exception_handler();
// silence logging if we ran a command
if (ZoneCLI::RanConsoleCommand(argc, argv) || ZoneCLI::RanTestCommand(argc, argv)) {
LogSys.SilenceConsoleLogging();
EQEmuLogSys::Instance()->SilenceConsoleLogging();
}
path.LoadPaths();
@@ -300,18 +299,18 @@ int main(int argc, char **argv)
// command handler (no sidecar or test commands)
if (ZoneCLI::RanConsoleCommand(argc, argv) && !(ZoneCLI::RanSidecarCommand(argc, argv) || ZoneCLI::RanTestCommand(argc, argv))) {
LogSys.EnableConsoleLogging();
EQEmuLogSys::Instance()->EnableConsoleLogging();
ZoneCLI::CommandHandler(argc, argv);
}
LogSys.SetDatabase(&database)
EQEmuLogSys::Instance()->SetDatabase(&database)
->SetLogPath(path.GetLogPath())
->LoadLogDatabaseSettings(ZoneCLI::RanTestCommand(argc, argv))
->SetGMSayHandler(&Zone::GMSayHookCallBackProcess)
->StartFileLogs();
if (ZoneCLI::RanTestCommand(argc, argv)) {
LogSys.SilenceConsoleLogging();
EQEmuLogSys::Instance()->SilenceConsoleLogging();
}
player_event_logs.SetDatabase(&database)->Init();
@@ -495,7 +494,7 @@ int main(int argc, char **argv)
// sidecar command handler
if (ZoneCLI::RanConsoleCommand(argc, argv)
&& (ZoneCLI::RanSidecarCommand(argc, argv) || ZoneCLI::RanTestCommand(argc, argv))) {
LogSys.EnableConsoleLogging();
EQEmuLogSys::Instance()->EnableConsoleLogging();
ZoneCLI::CommandHandler(argc, argv);
}
@@ -688,7 +687,7 @@ int main(int argc, char **argv)
bot_command_deinit();
safe_delete(parse);
LogInfo("Proper zone shutdown complete.");
LogSys.CloseFileLogs();
EQEmuLogSys::Instance()->CloseFileLogs();
safe_delete(mutex);
safe_delete(QServ);
@@ -700,7 +699,7 @@ void Shutdown()
{
zone->Shutdown(true);
LogInfo("Shutting down...");
LogSys.CloseFileLogs();
EQEmuLogSys::Instance()->CloseFileLogs();
EQ::EventLoop::Get().Shutdown();
}
+1 -1
View File
@@ -187,7 +187,7 @@ void NpcScaleManager::ScaleNPC(
npc->ModifyNPCStat("special_abilities", scale_data.special_abilities);
}
if (LogSys.log_settings[Logs::NPCScaling].is_category_enabled == 1) {
if (EQEmuLogSys::Instance()->log_settings[Logs::NPCScaling].is_category_enabled == 1) {
std::string scale_log;
for (const auto &stat : scaling_stats) {
@@ -11,7 +11,7 @@ void SidecarApi::LootSimulatorController(const httplib::Request &req, httplib::R
auto iterations = 100;
auto log_enabled = false;
LogSys.log_settings[Logs::Loot].log_to_console = 0;
EQEmuLogSys::Instance()->log_settings[Logs::Loot].log_to_console = 0;
nlohmann::json j;
+2 -2
View File
@@ -230,7 +230,7 @@ void WorldServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p)
LogInfo("World assigned Port [{}] for this zone", sci->port);
ZoneConfig::SetZonePort(sci->port);
LogSys.SetDiscordHandler(&Zone::DiscordWebhookMessageHandler);
EQEmuLogSys::Instance()->SetDiscordHandler(&Zone::DiscordWebhookMessageHandler);
}
break;
}
@@ -4591,7 +4591,7 @@ void WorldServer::ProcessReload(const ServerReload::Request& request)
break;
case ServerReload::Type::Logs:
LogSys.LoadLogDatabaseSettings();
EQEmuLogSys::Instance()->LoadLogDatabaseSettings();
player_event_logs.ReloadSettings();
break;
+6 -6
View File
@@ -178,7 +178,7 @@ bool Zone::Bootup(uint32 iZoneID, uint32 iInstanceID, bool is_static) {
/*
* Set Logging
*/
LogSys.StartFileLogs(StringFormat("%s_version_%u_inst_id_%u_port_%u", zone->GetShortName(), zone->GetInstanceVersion(), zone->GetInstanceID(), ZoneConfig::get()->ZonePort));
EQEmuLogSys::Instance()->StartFileLogs(StringFormat("%s_version_%u_inst_id_%u_port_%u", zone->GetShortName(), zone->GetInstanceVersion(), zone->GetInstanceID(), ZoneConfig::get()->ZonePort));
return true;
}
@@ -946,7 +946,7 @@ void Zone::Shutdown(bool quiet)
parse->ReloadQuests(true);
UpdateWindowTitle(nullptr);
LogSys.CloseFileLogs();
EQEmuLogSys::Instance()->CloseFileLogs();
if (RuleB(Zone, KillProcessOnDynamicShutdown)) {
LogInfo("Shutting down");
@@ -1244,9 +1244,9 @@ bool Zone::Init(bool is_static) {
LogInfo("Zone booted successfully zone_id [{}] time_offset [{}]", zoneid, zone_time.getEQTimeZone());
// logging origination information
LogSys.origination_info.zone_short_name = zone->short_name;
LogSys.origination_info.zone_long_name = zone->long_name;
LogSys.origination_info.instance_id = zone->instanceid;
EQEmuLogSys::Instance()->origination_info.zone_short_name = zone->short_name;
EQEmuLogSys::Instance()->origination_info.zone_long_name = zone->long_name;
EQEmuLogSys::Instance()->origination_info.instance_id = zone->instanceid;
return true;
}
@@ -2868,7 +2868,7 @@ void Zone::SendDiscordMessage(const std::string& webhook_name, const std::string
bool not_found = true;
for (int i= 0; i < MAX_DISCORD_WEBHOOK_ID; i++) {
auto &w = LogSys.GetDiscordWebhooks()[i];
auto &w = EQEmuLogSys::Instance()->GetDiscordWebhooks()[i];
if (w.webhook_name == webhook_name) {
SendDiscordMessage(w.id, message + "\n");
not_found = false;
+5 -5
View File
@@ -387,7 +387,7 @@ public:
entity_list.MessageStatus(
0,
AccountStatus::QuestTroupe,
LogSys.GetGMSayColorFromCategory(log_category),
EQEmuLogSys::Instance()->GetGMSayColorFromCategory(log_category),
message_split[0].c_str()
);
@@ -395,7 +395,7 @@ public:
entity_list.MessageStatus(
0,
AccountStatus::QuestTroupe,
LogSys.GetGMSayColorFromCategory(log_category),
EQEmuLogSys::Instance()->GetGMSayColorFromCategory(log_category),
fmt::format(
"--- {}",
message_split[iter]
@@ -407,7 +407,7 @@ public:
entity_list.MessageStatus(
0,
AccountStatus::QuestTroupe,
LogSys.GetGMSayColorFromCategory(log_category),
EQEmuLogSys::Instance()->GetGMSayColorFromCategory(log_category),
fmt::format("[{}] [{}] {}", Logs::LogCategoryName[log_category], func, message).c_str()
);
}
@@ -418,11 +418,11 @@ public:
static void DiscordWebhookMessageHandler(uint16 log_category, int webhook_id, const std::string &message)
{
std::string message_prefix;
if (!LogSys.origination_info.zone_short_name.empty()) {
if (!EQEmuLogSys::Instance()->origination_info.zone_short_name.empty()) {
message_prefix = fmt::format(
"[**{}**] **Zone** [**{}**] ",
Logs::LogCategoryName[log_category],
LogSys.origination_info.zone_short_name
EQEmuLogSys::Instance()->origination_info.zone_short_name
);
}