From 003d67708b9a279da3d37e5ef06eb32ceab53964 Mon Sep 17 00:00:00 2001 From: jackpoz Date: Mon, 2 Mar 2015 22:16:44 +0100 Subject: Shared/Logs: Improve log performances Improve Log::ShouldLog() performances by saving the lowest log level across all loggers and discarding any log with lower level than that. --- src/server/shared/Logging/Log.h | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/server/shared/Logging/Log.h') diff --git a/src/server/shared/Logging/Log.h b/src/server/shared/Logging/Log.h index 1d67ff87f76..408381620f7 100644 --- a/src/server/shared/Logging/Log.h +++ b/src/server/shared/Logging/Log.h @@ -82,6 +82,7 @@ class Log AppenderMap appenders; LoggerMap loggers; uint8 AppenderId; + LogLevel lowestLogLevel; std::string m_logsDir; std::string m_logsTimestamp; @@ -113,6 +114,10 @@ inline bool Log::ShouldLog(std::string const& type, LogLevel level) const // Speed up in cases where requesting "Type.sub1.sub2" but only configured // Logger "Type" + // Don't even look for a logger if the LogLevel is lower than lowest log levels across all loggers + if (level < lowestLogLevel) + return false; + Logger const* logger = GetLoggerByType(type); if (!logger) return false; -- cgit v1.2.3