diff --git a/src/common/log.c b/src/common/log.c index 94a683fb96..6b1a1a5c03 100644 --- a/src/common/log.c +++ b/src/common/log.c @@ -482,8 +482,11 @@ void switch_logs_debug(void) } #ifdef HAVE_EVENT_SET_LOG_CALLBACK +static const char *suppress_msg = NULL; void libevent_logging_callback(int severity, const char *msg) { + if (suppress_msg && strstr(msg, suppress_msg)) + return; switch (severity) { case _EVENT_LOG_DEBUG: log(LOG_DEBUG, "Message from libevent: %s", msg); @@ -506,6 +509,10 @@ void configure_libevent_logging(void) { event_set_log_callback(libevent_logging_callback); } +void suppress_libevent_log_msg(const char *msg) +{ + suppress_msg = msg; +} #else void configure_libevent_logging(void) {} #endif diff --git a/src/common/log.h b/src/common/log.h index af90f6d90a..bed936e09c 100644 --- a/src/common/log.h +++ b/src/common/log.h @@ -67,6 +67,7 @@ void add_temp_log(void); void close_temp_logs(void); void mark_logs_temp(void); void configure_libevent_logging(void); +void suppress_libevent_log_msg(const char *msg); /* Outputs a message to stdout */ void _log(int severity, const char *format, ...) CHECK_PRINTF(2,3); diff --git a/src/or/config.c b/src/or/config.c index 3fc183aec4..9d9320f567 100644 --- a/src/or/config.c +++ b/src/or/config.c @@ -270,7 +270,9 @@ options_act(void) { } if (!libevent_initialized) { configure_libevent_logging(); + suppress_libevent_logmsg("function not implemented"); event_init(); + suppress_libevent_msg(NULL); #if defined(HAVE_EVENT_GET_VERSION) && defined(HAVE_EVENT_GET_METHOD) /* Making this a NOTICE for now so we can link bugs to a libevent versions * or methods better. */