|
@@ -17,6 +17,12 @@ const char log_c_id[] = "$Id$";
|
|
|
#include "./util.h"
|
|
|
#include "./log.h"
|
|
|
|
|
|
+#ifdef HAVE_EVENT_H
|
|
|
+#include <event.h>
|
|
|
+#else
|
|
|
+#error "Tor requires libevent to build."
|
|
|
+#endif
|
|
|
+
|
|
|
#define TRUNCATED_STR "[...truncated]"
|
|
|
#define TRUNCATED_STR_LEN 14
|
|
|
|
|
@@ -475,3 +481,31 @@ void switch_logs_debug(void)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+#ifdef HAVE_EVENT_SET_LOG_CALLBACK
|
|
|
+void libevent_logging_callback(int severity, const char *msg)
|
|
|
+{
|
|
|
+ switch (severity) {
|
|
|
+ case _EVENT_LOG_DEBUG:
|
|
|
+ log(LOG_DEBUG, "Message from libevent: %s", msg);
|
|
|
+ break;
|
|
|
+ case _EVENT_LOG_MSG:
|
|
|
+ log(LOG_INFO, "Message from libevent: %s", msg);
|
|
|
+ break;
|
|
|
+ case _EVENT_LOG_WARN:
|
|
|
+ log(LOG_WARN, "Warning from libevent: %s", msg);
|
|
|
+ break;
|
|
|
+ case _EVENT_LOG_ERR:
|
|
|
+ log(LOG_ERR, "Error from libevent: %s", msg);
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ log(LOG_WARN, "Message [%d] from libevent: %s", severity, msg);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+}
|
|
|
+void configure_libevent_logging(void)
|
|
|
+{
|
|
|
+ event_set_log_callback(libevent_logging_callback);
|
|
|
+}
|
|
|
+#else
|
|
|
+void configure_libevent_logging(void) {}
|
|
|
+#endif
|