Convert debug logging from string concatenation to format strings.

When running in normal mode this will prevent a bunch of expensive
string concatenation.
This commit is contained in:
Sadie Powell 2025-01-23 16:35:32 +00:00
parent cdad978bf6
commit b9fee8b43d
19 changed files with 44 additions and 40 deletions

View File

@ -1213,7 +1213,7 @@ public:
} \ } \
catch (const CoreException& _exception_ ## EVENT) \ catch (const CoreException& _exception_ ## EVENT) \
{ \ { \
ServerInstance->Logs.Debug("MODULE", _mod->ModuleFile + " threw an exception in " # EVENT ": " + (_exception_ ## EVENT).GetReason()); \ ServerInstance->Logs.Debug("MODULE", "{} threw an exception in " # EVENT ": {}", _mod->ModuleFile, (_exception_ ## EVENT).GetReason()); \
} \ } \
} \ } \
} while (false) } while (false)
@ -1240,7 +1240,7 @@ public:
} \ } \
catch (const CoreException& _exception_ ## EVENT) \ catch (const CoreException& _exception_ ## EVENT) \
{ \ { \
ServerInstance->Logs.Debug("MODULE", _mod->ModuleFile + " threw an exception in " # EVENT ": " + (_exception_ ## EVENT).GetReason()); \ ServerInstance->Logs.Debug("MODULE", "{} threw an exception in " # EVENT ": {}", _mod->ModuleFile, (_exception_ ## EVENT).GetReason()); \
} \ } \
} \ } \
} while (false) } while (false)

View File

@ -58,7 +58,7 @@ bool BanCacheManager::RemoveIfExpired(BanCacheHash::iterator& it)
if (ServerInstance->Time() < it->second->Expiry) if (ServerInstance->Time() < it->second->Expiry)
return false; return false;
ServerInstance->Logs.Debug("BANCACHE", "Hit on " + it->first + " is out of date, removing!"); ServerInstance->Logs.Debug("BANCACHE", "Hit on {} is out of date, removing!", it->first);
delete it->second; delete it->second;
it = BanHash.erase(it); it = BanHash.erase(it);
return true; return true;
@ -67,7 +67,7 @@ bool BanCacheManager::RemoveIfExpired(BanCacheHash::iterator& it)
void BanCacheManager::RemoveEntries(const std::string& type, bool positive) void BanCacheManager::RemoveEntries(const std::string& type, bool positive)
{ {
if (positive) if (positive)
ServerInstance->Logs.Debug("BANCACHE", "BanCacheManager::RemoveEntries(): Removing positive hits for " + type); ServerInstance->Logs.Debug("BANCACHE", "BanCacheManager::RemoveEntries(): Removing positive hits for {}", type);
else else
ServerInstance->Logs.Debug("BANCACHE", "BanCacheManager::RemoveEntries(): Removing all negative hits"); ServerInstance->Logs.Debug("BANCACHE", "BanCacheManager::RemoveEntries(): Removing all negative hits");
@ -93,7 +93,7 @@ void BanCacheManager::RemoveEntries(const std::string& type, bool positive)
if (remove) if (remove)
{ {
/* we need to remove this one. */ /* we need to remove this one. */
ServerInstance->Logs.Debug("BANCACHE", "BanCacheManager::RemoveEntries(): Removing a hit on " + i->first); ServerInstance->Logs.Debug("BANCACHE", "BanCacheManager::RemoveEntries(): Removing a hit on {}", i->first);
delete b; delete b;
i = BanHash.erase(i); i = BanHash.erase(i);
} }

View File

@ -167,7 +167,7 @@ Membership* Channel::JoinUser(LocalUser* user, std::string cname, bool override,
{ {
if (!user->IsFullyConnected()) if (!user->IsFullyConnected())
{ {
ServerInstance->Logs.Debug("CHANNELS", "Attempted to join partially connected user " + user->uuid + " to channel " + cname); ServerInstance->Logs.Debug("CHANNELS", "Attempted to join partially connected user {} to channel {}", user->uuid, cname);
return nullptr; return nullptr;
} }
@ -217,7 +217,7 @@ Membership* Channel::ForceJoin(User* user, const std::string* privs, bool bursti
{ {
if (IS_SERVER(user)) if (IS_SERVER(user))
{ {
ServerInstance->Logs.Debug("CHANNELS", "Attempted to join server user " + user->uuid + " to channel " + this->name); ServerInstance->Logs.Debug("CHANNELS", "Attempted to join server user {} to channel {}", user->uuid, this->name);
return nullptr; return nullptr;
} }

View File

@ -740,7 +740,7 @@ void ConfigReaderThread::OnStop()
{ {
try try
{ {
ServerInstance->Logs.Debug("MODULE", "Rehashing " + modname); ServerInstance->Logs.Debug("MODULE", "Rehashing {}", modname);
mod->ReadConfig(status); mod->ReadConfig(status);
} }
catch (const CoreException& modex) catch (const CoreException& modex)

View File

@ -85,7 +85,8 @@ CmdResult CommandKick::Handle(User* user, const Params& parameters)
// If the current membership id is not equal to the one in the message then the user rejoined // If the current membership id is not equal to the one in the message then the user rejoined
if (memb->id != Membership::IdFromString(parameters[2])) if (memb->id != Membership::IdFromString(parameters[2]))
{ {
ServerInstance->Logs.Debug(MODNAME, "Dropped KICK due to membership id mismatch: " + ConvToStr(memb->id) + " != " + parameters[2]); ServerInstance->Logs.Debug(MODNAME, "Dropped KICK due to membership id mismatch: {} != {}",
memb->id, parameters[2]);
return CmdResult::FAILURE; return CmdResult::FAILURE;
} }
} }

View File

@ -55,7 +55,7 @@ private:
if (pos + name.length() + 2 > output_size) if (pos + name.length() + 2 > output_size)
throw Exception(creator, "Unable to pack name"); throw Exception(creator, "Unable to pack name");
ServerInstance->Logs.Debug(MODNAME, "Packing name " + name); ServerInstance->Logs.Debug(MODNAME, "Packing name {}", name);
irc::sepstream sep(name, '.'); irc::sepstream sep(name, '.');
std::string token; std::string token;
@ -127,7 +127,7 @@ private:
if (name.empty()) if (name.empty())
throw Exception(creator, "Unable to unpack name - no name"); throw Exception(creator, "Unable to unpack name - no name");
ServerInstance->Logs.Debug(MODNAME, "Unpack name " + name); ServerInstance->Logs.Debug(MODNAME, "Unpack name {}", name);
return name; return name;
} }
@ -250,7 +250,7 @@ private:
} }
if (!record.name.empty() && !record.rdata.empty()) if (!record.name.empty() && !record.rdata.empty())
ServerInstance->Logs.Debug(MODNAME, record.name + " -> " + record.rdata); ServerInstance->Logs.Debug(MODNAME, "{} -> {}", record.name, record.rdata);
return record; return record;
} }
@ -296,7 +296,8 @@ public:
unsigned short arcount = (input[packet_pos] << 8) | input[packet_pos + 1]; unsigned short arcount = (input[packet_pos] << 8) | input[packet_pos + 1];
packet_pos += 2; packet_pos += 2;
ServerInstance->Logs.Debug(MODNAME, "qdcount: " + ConvToStr(qdcount) + " ancount: " + ConvToStr(ancount) + " nscount: " + ConvToStr(nscount) + " arcount: " + ConvToStr(arcount)); ServerInstance->Logs.Debug(MODNAME, "qdcount: {} ancount: {} nscount: {} arcount: {}",
qdcount, ancount, nscount, arcount);
if (qdcount != 1) if (qdcount != 1)
throw Exception(creator, "Question count != 1 in incoming packet"); throw Exception(creator, "Question count != 1 in incoming packet");
@ -407,7 +408,7 @@ class MyManager final
*/ */
bool CheckCache(DNS::Request* req, const DNS::Question& question) bool CheckCache(DNS::Request* req, const DNS::Question& question)
{ {
ServerInstance->Logs.Critical(MODNAME, "cache: Checking cache for " + question.name); ServerInstance->Logs.Critical(MODNAME, "cache: Checking cache for {}", question.name);
cache_map::iterator it = this->cache.find(question); cache_map::iterator it = this->cache.find(question);
if (it == this->cache.end()) if (it == this->cache.end())
@ -420,7 +421,7 @@ class MyManager final
return false; return false;
} }
ServerInstance->Logs.Debug(MODNAME, "cache: Using cached result for " + question.name); ServerInstance->Logs.Debug(MODNAME, "cache: Using cached result for {}", question.name);
record.cached = true; record.cached = true;
req->OnLookupComplete(&record); req->OnLookupComplete(&record);
return true; return true;
@ -446,7 +447,7 @@ class MyManager final
ResourceRecord& rr = r.answers.front(); ResourceRecord& rr = r.answers.front();
// Set TTL to what we've determined to be the lowest // Set TTL to what we've determined to be the lowest
rr.ttl = cachettl; rr.ttl = cachettl;
ServerInstance->Logs.Debug(MODNAME, "cache: added cache for " + rr.name + " -> " + rr.rdata + " ttl: " + ConvToStr(rr.ttl)); ServerInstance->Logs.Debug(MODNAME, "cache: added cache for {} -> {} ttl: {}", rr.name, rr.rdata, rr.ttl);
this->cache[r.question] = r; this->cache[r.question] = r;
} }
@ -511,7 +512,8 @@ public:
return; return;
} }
ServerInstance->Logs.Debug(MODNAME, "Processing request to lookup " + req->question.name + " of type " + ConvToStr(req->question.type) + " to " + this->myserver.addr()); ServerInstance->Logs.Debug(MODNAME, "Processing request to lookup {} of type {} to {}",
req->question.name, (int)req->question.type, this->myserver.addr());
/* Create an id */ /* Create an id */
unsigned int tries = 0; unsigned int tries = 0;
@ -740,7 +742,7 @@ public:
} }
else else
{ {
ServerInstance->Logs.Debug(MODNAME, "Lookup complete for " + request->question.name); ServerInstance->Logs.Debug(MODNAME, "Lookup complete for {}", request->question.name);
this->stats_success++; this->stats_success++;
request->OnLookupComplete(&recv_packet); request->OnLookupComplete(&recv_packet);
this->AddCache(recv_packet); this->AddCache(recv_packet);

View File

@ -187,7 +187,7 @@ public:
catch (const DNS::Exception& e) catch (const DNS::Exception& e)
{ {
delete res_forward; delete res_forward;
ServerInstance->Logs.Debug(MODNAME, "Error in resolver: " + e.GetReason()); ServerInstance->Logs.Debug(MODNAME, "Error in resolver: {}", e.GetReason());
HandleError(user, "There was an internal error resolving your host"); HandleError(user, "There was an internal error resolving your host");
} }
@ -236,7 +236,7 @@ public:
{ {
this->dnsLookup.Unset(user); this->dnsLookup.Unset(user);
delete res_reverse; delete res_reverse;
ServerInstance->Logs.Debug(MODNAME, "Error in resolver: " + e.GetReason()); ServerInstance->Logs.Debug(MODNAME, "Error in resolver: {}", e.GetReason());
} }
} }

View File

@ -427,7 +427,7 @@ public:
void Submit(SQL::Query* q, const std::string& qs) override void Submit(SQL::Query* q, const std::string& qs) override
{ {
ServerInstance->Logs.Debug(MODNAME, "Executing MySQL query: " + qs); ServerInstance->Logs.Debug(MODNAME, "Executing MySQL query: {}", qs);
Parent()->Dispatcher->LockQueue(); Parent()->Dispatcher->LockQueue();
Parent()->qq.emplace_back(q, qs, this); Parent()->qq.emplace_back(q, qs, this);
Parent()->Dispatcher->UnlockQueueWakeup(); Parent()->Dispatcher->UnlockQueueWakeup();

View File

@ -454,7 +454,7 @@ restart:
void Submit(SQL::Query* req, const std::string& q) override void Submit(SQL::Query* req, const std::string& q) override
{ {
ServerInstance->Logs.Debug(MODNAME, "Executing PostgreSQL query: " + q); ServerInstance->Logs.Debug(MODNAME, "Executing PostgreSQL query: {}", q);
if (qinprog.q.empty()) if (qinprog.q.empty())
{ {
DoQuery(QueueItem(req, q)); DoQuery(QueueItem(req, q));

View File

@ -174,7 +174,7 @@ public:
void Submit(SQL::Query* query, const std::string& q) override void Submit(SQL::Query* query, const std::string& q) override
{ {
ServerInstance->Logs.Debug(MODNAME, "Executing SQLite3 query: " + q); ServerInstance->Logs.Debug(MODNAME, "Executing SQLite3 query: {}", q);
Query(query, q); Query(query, q);
delete query; delete query;
} }

View File

@ -1148,14 +1148,14 @@ class ModuleSSLGnuTLS final
{ {
if (!insp::equalsci(tag->getString("provider", "gnutls", 1), "gnutls")) if (!insp::equalsci(tag->getString("provider", "gnutls", 1), "gnutls"))
{ {
ServerInstance->Logs.Debug(MODNAME, "Ignoring non-GnuTLS <sslprofile> tag at " + tag->source.str()); ServerInstance->Logs.Debug(MODNAME, "Ignoring non-GnuTLS <sslprofile> tag at {}", tag->source.str());
continue; continue;
} }
const std::string name = tag->getString("name"); const std::string name = tag->getString("name");
if (name.empty()) if (name.empty())
{ {
ServerInstance->Logs.Warning(MODNAME, "Ignoring <sslprofile> tag without name at " + tag->source.str()); ServerInstance->Logs.Warning(MODNAME, "Ignoring <sslprofile> tag without name at {}", tag->source.str());
continue; continue;
} }

View File

@ -987,14 +987,14 @@ class ModuleSSLOpenSSL final
{ {
if (!insp::equalsci(tag->getString("provider", "openssl", 1), "openssl")) if (!insp::equalsci(tag->getString("provider", "openssl", 1), "openssl"))
{ {
ServerInstance->Logs.Debug(MODNAME, "Ignoring non-OpenSSL <sslprofile> tag at " + tag->source.str()); ServerInstance->Logs.Debug(MODNAME, "Ignoring non-OpenSSL <sslprofile> tag at {}", tag->source.str());
continue; continue;
} }
const std::string name = tag->getString("name"); const std::string name = tag->getString("name");
if (name.empty()) if (name.empty())
{ {
ServerInstance->Logs.Warning(MODNAME, "Ignoring <sslprofile> tag without name at " + tag->source.str()); ServerInstance->Logs.Warning(MODNAME, "Ignoring <sslprofile> tag without name at {}", tag->source.str());
continue; continue;
} }

View File

@ -780,7 +780,7 @@ void ModuleFilter::OnDecodeMetadata(Extensible* target, const std::string& extna
} }
catch (const ModuleException& e) catch (const ModuleException& e)
{ {
ServerInstance->Logs.Debug(MODNAME, "Error when unserializing filter: " + e.GetReason()); ServerInstance->Logs.Debug(MODNAME, "Error when unserializing filter: {}", e.GetReason());
} }
} }
} }

View File

@ -347,7 +347,7 @@ public:
} }
catch (const ModuleException& e) catch (const ModuleException& e)
{ {
ServerInstance->Logs.Debug(MODNAME, "Ident exception: " + e.GetReason()); ServerInstance->Logs.Debug(MODNAME, "Ident exception: {}", e.GetReason());
} }
} }

View File

@ -31,7 +31,7 @@ CmdResult CommandIJoin::HandleRemote(RemoteUser* user, Params& params)
{ {
// Desync detected, recover // Desync detected, recover
// Ignore the join and send RESYNC, this will result in the remote server sending all channel data to us // Ignore the join and send RESYNC, this will result in the remote server sending all channel data to us
ServerInstance->Logs.Debug(MODNAME, "Received IJOIN for nonexistent channel: " + params[0]); ServerInstance->Logs.Debug(MODNAME, "Received IJOIN for nonexistent channel: {}", params[0]);
CmdBuilder("RESYNC").push(params[0]).Unicast(user); CmdBuilder("RESYNC").push(params[0]).Unicast(user);
@ -58,7 +58,7 @@ CmdResult CommandIJoin::HandleRemote(RemoteUser* user, Params& params)
CmdResult CommandResync::HandleServer(TreeServer* server, CommandBase::Params& params) CmdResult CommandResync::HandleServer(TreeServer* server, CommandBase::Params& params)
{ {
ServerInstance->Logs.Debug(MODNAME, "Resyncing " + params[0]); ServerInstance->Logs.Debug(MODNAME, "Resyncing {}", params[0]);
auto* chan = ServerInstance->Channels.Find(params[0]); auto* chan = ServerInstance->Channels.Find(params[0]);
if (!chan) if (!chan)
{ {

View File

@ -35,7 +35,8 @@ CmdResult CommandSInfo::HandleServer(TreeServer* server, CommandBase::Params& pa
else if (irc::equals(key, "desc")) else if (irc::equals(key, "desc"))
{ {
// Only sent when the description of a server changes because of a rehash; not sent on burst // Only sent when the description of a server changes because of a rehash; not sent on burst
ServerInstance->Logs.Debug(MODNAME, "Server description of " + server->GetName() + " changed: " + value); ServerInstance->Logs.Debug(MODNAME, "Server description of {} changed: {}",
server->GetName(), value);
server->SetDesc(value); server->SetDesc(value);
} }
else if (irc::equals(key, "rawbranch")) else if (irc::equals(key, "rawbranch"))

View File

@ -200,7 +200,7 @@ void UserManager::AddUser(int socket, ListenSocket* via, const irc::sockets::soc
if (!b->Type.empty() && !New->exempt) if (!b->Type.empty() && !New->exempt)
{ {
/* user banned */ /* user banned */
ServerInstance->Logs.Debug("BANCACHE", "Positive hit for " + New->GetAddress()); ServerInstance->Logs.Debug("BANCACHE", "Positive hit for {}", New->GetAddress());
if (!ServerInstance->Config->XLineMessage.empty()) if (!ServerInstance->Config->XLineMessage.empty())
New->WriteNumeric(ERR_YOUREBANNEDCREEP, ServerInstance->Config->XLineMessage); New->WriteNumeric(ERR_YOUREBANNEDCREEP, ServerInstance->Config->XLineMessage);
@ -212,7 +212,7 @@ void UserManager::AddUser(int socket, ListenSocket* via, const irc::sockets::soc
} }
else else
{ {
ServerInstance->Logs.Debug("BANCACHE", "Negative hit for " + New->GetAddress()); ServerInstance->Logs.Debug("BANCACHE", "Negative hit for {}", New->GetAddress());
} }
} }
else else
@ -241,13 +241,13 @@ void UserManager::QuitUser(User* user, const std::string& quitmessage, const std
{ {
if (user->quitting) if (user->quitting)
{ {
ServerInstance->Logs.Debug("USERS", "BUG: Tried to quit quitting user: " + user->nick); ServerInstance->Logs.Debug("USERS", "BUG: Tried to quit quitting user: {}", user->nick);
return; return;
} }
if (IS_SERVER(user)) if (IS_SERVER(user))
{ {
ServerInstance->Logs.Debug("USERS", "BUG: Tried to quit server user: " + user->nick); ServerInstance->Logs.Debug("USERS", "BUG: Tried to quit server user: {}", user->nick);
return; return;
} }
@ -308,7 +308,7 @@ void UserManager::QuitUser(User* user, const std::string& quitmessage, const std
} }
if (!clientlist.erase(user->nick)) if (!clientlist.erase(user->nick))
ServerInstance->Logs.Debug("USERS", "BUG: Nick not found in clientlist, cannot remove: " + user->nick); ServerInstance->Logs.Debug("USERS", "BUG: Nick not found in clientlist, cannot remove: {}", user->nick);
uuidlist.erase(user->uuid); uuidlist.erase(user->uuid);
user->PurgeEmptyChannels(); user->PurgeEmptyChannels();

View File

@ -483,7 +483,7 @@ void LocalUser::FullConnect()
ServerInstance->SNO.WriteToSnoMask('c', "Client connecting on port {} (class {}): {} ({}) [{}\x0F]", ServerInstance->SNO.WriteToSnoMask('c', "Client connecting on port {} (class {}): {} ({}) [{}\x0F]",
server_sa.port(), GetClass()->GetName(), GetRealMask(), GetAddress(), GetRealName()); server_sa.port(), GetClass()->GetName(), GetRealMask(), GetAddress(), GetRealName());
ServerInstance->Logs.Debug("BANCACHE", "Adding NEGATIVE hit for " + this->GetAddress()); ServerInstance->Logs.Debug("BANCACHE", "Adding NEGATIVE hit for {}", this->GetAddress());
ServerInstance->BanCache.AddHit(this->GetAddress(), "", ""); ServerInstance->BanCache.AddHit(this->GetAddress(), "", "");
// reset the flood penalty (which could have been raised due to things like auto +x) // reset the flood penalty (which could have been raised due to things like auto +x)
CommandFloodPenalty = 0; CommandFloodPenalty = 0;
@ -504,7 +504,7 @@ bool User::ChangeNick(const std::string& newnick, time_t newts)
{ {
if (quitting) if (quitting)
{ {
ServerInstance->Logs.Debug("USERS", "BUG: Attempted to change nick of a quitting user: " + this->nick); ServerInstance->Logs.Debug("USERS", "BUG: Attempted to change nick of a quitting user: {}", this->nick);
return false; return false;
} }

View File

@ -577,7 +577,7 @@ void XLine::DefaultApply(User* u, bool bancache)
if (bancache) if (bancache)
{ {
ServerInstance->Logs.Debug("BANCACHE", "Adding positive hit (" + type + ") for " + u->GetAddress()); ServerInstance->Logs.Debug("BANCACHE", "Adding positive hit ({}) for {}", type, u->GetAddress());
ServerInstance->BanCache.AddHit(u->GetAddress(), this->type, banreason, (this->duration > 0 ? (this->expiry - ServerInstance->Time()) : 0)); ServerInstance->BanCache.AddHit(u->GetAddress(), this->type, banreason, (this->duration > 0 ? (this->expiry - ServerInstance->Time()) : 0));
} }
} }