aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/common/logging/backend.cpp
diff options
context:
space:
mode:
authorGravatar Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>2015-03-06 19:15:02 +0100
committerGravatar Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>2015-03-06 19:23:52 +0100
commit0aa44e238db7a72f4fb8b347168ec76c3ce48ad5 (patch)
treedba02c60d0a663708265089394c634a655417f9d /src/common/logging/backend.cpp
parent53ba65db436eb9c25ac71e17bfb8685d599b1681 (diff)
Logging: check for filter before sending to the queue, to skip all heavy formatting on the other thread.
Diffstat (limited to 'src/common/logging/backend.cpp')
-rw-r--r--src/common/logging/backend.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/common/logging/backend.cpp b/src/common/logging/backend.cpp
index 7c1010b2..7b479b56 100644
--- a/src/common/logging/backend.cpp
+++ b/src/common/logging/backend.cpp
@@ -135,9 +135,18 @@ Entry CreateEntry(Class log_class, Level log_level,
return std::move(entry);
}
+static Filter* filter;
+
+void SetFilter(Filter* new_filter) {
+ filter = new_filter;
+}
+
void LogMessage(Class log_class, Level log_level,
const char* filename, unsigned int line_nr, const char* function,
const char* format, ...) {
+ if (!filter->CheckMessage(log_class, log_level))
+ return;
+
va_list args;
va_start(args, format);
Entry entry = CreateEntry(log_class, log_level,