aboutsummaryrefslogtreecommitdiff
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
parent5ce43da03dff3ee655949cd53d952dace555e268 (diff)
downloadbitcoin-8b2d6edaa9fbfb6344ca51edd0b3655b451cbcac.tar.xz
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.
-rw-r--r--src/httpserver.cpp19
-rw-r--r--src/init.cpp2
2 files changed, 20 insertions, 1 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
diff --git a/src/init.cpp b/src/init.cpp
index 276effe582..c259e3fa2d 100644
--- a/src/init.cpp
+++ b/src/init.cpp
@@ -387,7 +387,7 @@ std::string HelpMessage(HelpMessageMode mode)
strUsage += HelpMessageOpt("-flushwallet", strprintf("Run a thread to flush wallet periodically (default: %u)", 1));
strUsage += HelpMessageOpt("-stopafterblockimport", strprintf("Stop running after importing blocks from disk (default: %u)", 0));
}
- string debugCategories = "addrman, alert, bench, coindb, db, lock, rand, rpc, selectcoins, mempool, mempoolrej, net, proxy, prune, http"; // Don't translate these and qt below
+ string debugCategories = "addrman, alert, bench, coindb, db, lock, rand, rpc, selectcoins, mempool, mempoolrej, net, proxy, prune, http, libevent"; // Don't translate these and qt below
if (mode == HMM_BITCOIN_QT)
debugCategories += ", qt";
strUsage += HelpMessageOpt("-debug=<category>", strprintf(_("Output debugging information (default: %u, supplying <category> is optional)"), 0) + ". " +