aboutsummaryrefslogtreecommitdiff
path: root/src/httpserver.cpp
diff options
context:
space:
mode:
authorWladimir J. van der Laan <laanwj@gmail.com>2015-09-18 14:58:08 +0200
committerWladimir J. van der Laan <laanwj@gmail.com>2015-09-21 13:24:34 +0200
commit8b2d6edaa9fbfb6344ca51edd0b3655b451cbcac (patch)
treeb7effed5b45d351dbaad7206a7145bfe092bb775 /src/httpserver.cpp
parent5ce43da03dff3ee655949cd53d952dace555e268 (diff)
http: Disable libevent debug logging, if not explicitly enabled
Add a option "-debug=libevent" to enable libevent debugging for troubleshooting. Libevent logging is redirected to our own log.
Diffstat (limited to 'src/httpserver.cpp')
-rw-r--r--src/httpserver.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/httpserver.cpp b/src/httpserver.cpp
index baca007571..3fc8802143 100644
--- a/src/httpserver.cpp
+++ b/src/httpserver.cpp
@@ -320,6 +320,15 @@ static void HTTPWorkQueueRun(WorkQueue<HTTPClosure>* queue)
queue->Run();
}
+/** libevent event log callback */
+static void libevent_log_cb(int severity, const char *msg)
+{
+ if (severity >= EVENT_LOG_WARN) // Log warn messages and higher without debug category
+ LogPrintf("libevent: %s\n", msg);
+ else
+ LogPrint("libevent", "libevent: %s\n", msg);
+}
+
bool InitHTTPServer()
{
struct evhttp* http = 0;
@@ -335,6 +344,16 @@ bool InitHTTPServer()
return false;
}
+ // Redirect libevent's logging to our own log
+ event_set_log_callback(&libevent_log_cb);
+#if LIBEVENT_VERSION_NUMBER >= 0x02010100
+ // If -debug=libevent, set full libevent debugging.
+ // Otherwise, disable all libevent debugging.
+ if (LogAcceptCategory("libevent"))
+ event_enable_debug_logging(EVENT_DBG_ALL);
+ else
+ event_enable_debug_logging(EVENT_DBG_NONE);
+#endif
#ifdef WIN32
evthread_use_windows_threads();
#else