From 0aa44e238db7a72f4fb8b347168ec76c3ce48ad5 Mon Sep 17 00:00:00 2001
From: Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
Date: Fri, 6 Mar 2015 19:15:02 +0100
Subject: Logging: check for filter before sending to the queue, to skip all
 heavy formatting on the other thread.

---
 src/common/logging/backend.cpp | 9 +++++++++
 1 file changed, 9 insertions(+)

(limited to 'src/common/logging/backend.cpp')

diff --git a/src/common/logging/backend.cpp b/src/common/logging/backend.cpp
index 7c1010b225..7b479b5692 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,
-- 
cgit v1.2.3-70-g09d2