mirror of
https://github.com/edubart/otclient.git
synced 2025-05-03 02:59:21 +02:00
Keep log messages in a deque instead of a list and remove unnecessary copy
Co-authored-by: Kacper Piwiński <kacper.piwinski@arex.pl>
This commit is contained in:
parent
7752add8aa
commit
67b7dbfcfe
@ -34,6 +34,12 @@
|
||||
|
||||
Logger g_logger;
|
||||
|
||||
namespace
|
||||
{
|
||||
const std::string s_logPrefixes[] = { "", "", "WARNING: ", "ERROR: ", "FATAL ERROR: " };
|
||||
bool s_ignoreLogs = false;
|
||||
}
|
||||
|
||||
void Logger::log(Fw::LogLevel level, const std::string& message)
|
||||
{
|
||||
std::lock_guard<std::recursive_mutex> lock(m_mutex);
|
||||
@ -43,13 +49,10 @@ void Logger::log(Fw::LogLevel level, const std::string& message)
|
||||
return;
|
||||
#endif
|
||||
|
||||
static bool ignoreLogs = false;
|
||||
if(ignoreLogs)
|
||||
if(s_ignoreLogs)
|
||||
return;
|
||||
|
||||
const static std::string logPrefixes[] = { "", "", "WARNING: ", "ERROR: ", "FATAL ERROR: " };
|
||||
|
||||
std::string outmsg = logPrefixes[level] + message;
|
||||
std::string outmsg = s_logPrefixes[level] + message;
|
||||
|
||||
/*
|
||||
#if !defined(NDEBUG) && !defined(WIN32)
|
||||
@ -91,7 +94,7 @@ void Logger::log(Fw::LogLevel level, const std::string& message)
|
||||
#ifdef FW_GRAPHICS
|
||||
g_window.displayFatalError(message);
|
||||
#endif
|
||||
ignoreLogs = true;
|
||||
s_ignoreLogs = true;
|
||||
exit(-1);
|
||||
}
|
||||
}
|
||||
@ -122,8 +125,7 @@ void Logger::fireOldMessages()
|
||||
std::lock_guard<std::recursive_mutex> lock(m_mutex);
|
||||
|
||||
if(m_onLog) {
|
||||
auto backup = m_logMessages;
|
||||
for(const LogMessage& logMessage : backup) {
|
||||
for(const LogMessage& logMessage : m_logMessages) {
|
||||
m_onLog(logMessage.level, logMessage.message, logMessage.when);
|
||||
}
|
||||
}
|
||||
|
@ -59,7 +59,7 @@ public:
|
||||
void setOnLog(const OnLogCallback& onLog) { m_onLog = onLog; }
|
||||
|
||||
private:
|
||||
std::list<LogMessage> m_logMessages;
|
||||
std::deque<LogMessage> m_logMessages;
|
||||
OnLogCallback m_onLog;
|
||||
std::ofstream m_outFile;
|
||||
std::recursive_mutex m_mutex;
|
||||
|
Loading…
x
Reference in New Issue
Block a user