[tor-commits] [obfsproxy/master] Add a notice log level and make it the default.

nickm at torproject.org nickm at torproject.org
Mon Feb 13 15:44:53 UTC 2012


commit 0d201bff6df2eeffb8aab25db6b9ec487d51181c
Author: Karsten Loesing <karsten.loesing at gmx.net>
Date:   Sun Feb 12 10:03:17 2012 +0100

    Add a notice log level and make it the default.
---
 doc/HACKING |    4 ++--
 src/main.c  |   12 +++++++-----
 src/util.c  |   32 ++++++++++++++++++++++++--------
 src/util.h  |   12 +++++++++---
 4 files changed, 42 insertions(+), 18 deletions(-)

diff --git a/doc/HACKING b/doc/HACKING
index c9197fb..b1134bf 100644
--- a/doc/HACKING
+++ b/doc/HACKING
@@ -37,8 +37,8 @@ obfsproxy currently provides the following functions for protocols
                    according to your protocol.
 Note that (*handshake) and (*destroy) are optional.
 
-For all your logging needs you can use the functions log_{warn,info,debug}
-defined in src/util.h.
+For all your logging needs you can use the functions
+log_{warn,notice,info,debug} defined in src/util.h.
 
 [1]: For example:
      'your_protocol --additional-parameter=yes server 127.0.0.1:666'
diff --git a/src/main.c b/src/main.c
index 7ebdd51..e7671c8 100644
--- a/src/main.c
+++ b/src/main.c
@@ -51,7 +51,8 @@ usage(void)
     fprintf(stderr,"[%s] ", supported_protocols[i]->name);
   fprintf(stderr, "\n* obfsproxy_args:\n"
           "--log-file=<file> ~ set logfile\n"
-          "--log-min-severity=warn|info|debug ~ set minimum logging severity\n"
+          "--log-min-severity=warn|notice|info|debug ~ "
+          "set minimum logging severity\n"
           "--no-log ~ disable logging\n");
 
   exit(1);
@@ -78,16 +79,16 @@ handle_signal_cb(evutil_socket_t fd, short what, void *arg)
   case SIGINT:
     close_all_listeners();
     if (!got_sigint) {
-      log_info("Got SIGINT. Preparing shutdown.");
+      log_notice("Got SIGINT. Preparing shutdown.");
       start_shutdown(0);
       got_sigint++;
     } else {
-      log_info("Got SIGINT for the second time. Terminating.");
+      log_notice("Got SIGINT for the second time. Terminating.");
       start_shutdown(1);
     }
     break;
   case SIGTERM:
-    log_info("Got SIGTERM. Terminating.");
+    log_notice("Got SIGTERM. Terminating.");
     start_shutdown(1);
     break;
   }
@@ -236,7 +237,7 @@ void
 obfsproxy_cleanup()
 {
   /* We have landed. */
-  log_info("Exiting.");
+  log_notice("Exiting.");
 
   close_all_listeners();
   evdns_base_free(get_evdns_base(), 0);
@@ -257,6 +258,7 @@ obfs_main(int argc, const char *const *argv)
 
   /* Handle optional obfsproxy arguments. */
   begin = argv + handle_obfsproxy_args(argv);
+  log_notice("Starting.");
 
   if (is_external_proxy) {
     if (launch_external_proxy(begin) < 0)
diff --git a/src/util.c b/src/util.c
index f2089df..ee1766b 100644
--- a/src/util.c
+++ b/src/util.c
@@ -352,15 +352,16 @@ ascii_strlower(char *s)
 
 /** Logging severities */
 
-#define LOG_SEV_ERR     4
-#define LOG_SEV_WARN    3
+#define LOG_SEV_ERR     5
+#define LOG_SEV_WARN    4
+#define LOG_SEV_NOTICE  3
 #define LOG_SEV_INFO    2
 #define LOG_SEV_DEBUG   1
 
 /* logging method */
 static int logging_method=LOG_METHOD_STDERR;
 /* minimum logging severity */
-static int logging_min_sev=LOG_SEV_INFO;
+static int logging_min_sev=LOG_SEV_NOTICE;
 /* logfile fd */
 static int logging_logfile=-1;
 
@@ -371,6 +372,7 @@ sev_to_string(int severity)
   switch (severity) {
   case LOG_SEV_ERR:     return "error";
   case LOG_SEV_WARN:    return "warn";
+  case LOG_SEV_NOTICE:  return "notice";
   case LOG_SEV_INFO:    return "info";
   case LOG_SEV_DEBUG:   return "debug";
   default:
@@ -385,8 +387,10 @@ string_to_sev(const char *string)
 {
   if (!strcasecmp(string, "error"))
     return LOG_SEV_ERR;
-  if (!strcasecmp(string, "warn"))
+  else if (!strcasecmp(string, "warn"))
     return LOG_SEV_WARN;
+  else if (!strcasecmp(string, "notice"))
+    return LOG_SEV_NOTICE;
   else if (!strcasecmp(string, "info"))
     return LOG_SEV_INFO;
   else if (!strcasecmp(string, "debug"))
@@ -402,9 +406,10 @@ string_to_sev(const char *string)
 static int
 sev_is_valid(int severity)
 {
-  return (severity == LOG_SEV_ERR  ||
-          severity == LOG_SEV_WARN ||
-          severity == LOG_SEV_INFO ||
+  return (severity == LOG_SEV_ERR    ||
+          severity == LOG_SEV_WARN   ||
+          severity == LOG_SEV_NOTICE ||
+          severity == LOG_SEV_INFO   ||
           severity == LOG_SEV_DEBUG);
 }
 
@@ -450,7 +455,6 @@ log_set_method(int method, const char *filename)
   }
 
   logging_method = method;
-  log_info("Starting.");
 
   return 0;
 }
@@ -584,6 +588,18 @@ log_warn(const char *format, ...)
   va_end(ap);
 }
 
+/** Public function for logging a notice message. */
+void
+log_notice(const char *format, ...)
+{
+  va_list ap;
+  va_start(ap,format);
+
+  logv(LOG_SEV_NOTICE, format, ap);
+
+  va_end(ap);
+}
+
 /** Public function for logging an informative message. */
 void
 log_info(const char *format, ...)
diff --git a/src/util.h b/src/util.h
index 3396abf..9197c8c 100644
--- a/src/util.h
+++ b/src/util.h
@@ -157,7 +157,8 @@ int obfs_snprintf(char *str, size_t size,
 int log_set_method(int method, const char *filename);
 
 /** Set the minimum severity that will be logged.
-    'sev_string' may be "warn", "info", or "debug" (case-insensitively). */
+    'sev_string' may be "warn", "notice", "info", or "debug"
+    (case-insensitively). */
 int log_set_min_severity(const char* sev_string);
 
 /** True if debug messages are being logged. */
@@ -181,8 +182,13 @@ void log_error_abort(const char *format, ...)
 void log_warn(const char *format, ...)
   ATTR_PRINTF_1;
 
-/** Info-level severity: for messages that should be sent to the user
-    during normal operation. */
+/** Notice-level severity: for messages that most users would like to
+    learn about during normal operation. */
+void log_notice(const char *format, ...)
+  ATTR_PRINTF_1;
+
+/** Info-level severity: for rather verbose messages of some interest to
+    users during normal operation. */
 void log_info(const char *format, ...)
   ATTR_PRINTF_1;
 





More information about the tor-commits mailing list