aboutsummaryrefslogtreecommitdiff
path: root/src/server/shared/Logging/Log.cpp
diff options
context:
space:
mode:
authorSpp <spp@jorge.gr>2013-01-16 09:52:49 +0100
committerSpp <spp@jorge.gr>2013-01-16 09:52:49 +0100
commit526bdc076488cc5d6507d181790a7ba965cedbef (patch)
tree539c4f510771c1d6b3aa20efb64bd1226aa4abd4 /src/server/shared/Logging/Log.cpp
parentbe3826825e9e0ccb3ad48f82c44afa7625a39304 (diff)
Core/Logging: Add config option to enable/disable asyncronous logging (disabled by default)
Diffstat (limited to 'src/server/shared/Logging/Log.cpp')
-rw-r--r--src/server/shared/Logging/Log.cpp17
1 files changed, 12 insertions, 5 deletions
diff --git a/src/server/shared/Logging/Log.cpp b/src/server/shared/Logging/Log.cpp
index 147533b513d..96c72b5eb74 100644
--- a/src/server/shared/Logging/Log.cpp
+++ b/src/server/shared/Logging/Log.cpp
@@ -273,12 +273,16 @@ void Log::vlog(LogFilterType filter, LogLevel level, char const* str, va_list ar
void Log::write(LogMessage* msg)
{
+ if (loggers.empty())
+ return;
+
+ msg->text.append("\n");
+ Logger* logger = GetLoggerByType(msg->type);
+
if (worker)
- {
- msg->text.append("\n");
- Logger* logger = GetLoggerByType(msg->type);
worker->enqueue(new LogOperation(logger, msg));
- }
+ else
+ logger->write(*msg);
}
std::string Log::GetTimestampStr()
@@ -478,7 +482,10 @@ void Log::Close()
void Log::LoadFromConfig()
{
Close();
- worker = new LogWorker();
+
+ if (ConfigMgr::GetBoolDefault("Log.Async.Enable", false))
+ worker = new LogWorker();
+
AppenderId = 0;
m_logsDir = ConfigMgr::GetStringDefault("LogsDir", "");
if (!m_logsDir.empty())