LRN: Allow env vars to adjust and override loglevel
authorChristian Grothoff <christian@grothoff.org>
Mon, 1 Aug 2011 20:31:07 +0000 (20:31 +0000)
committerChristian Grothoff <christian@grothoff.org>
Mon, 1 Aug 2011 20:31:07 +0000 (20:31 +0000)
src/util/common_logging.c

index a80321c83f2b06ebc823cade4444fc2beeb63577..46393674178cc4d11be0550087e8c5b5ad05a1e6 100644 (file)
@@ -179,6 +179,9 @@ GNUNET_log_setup (const char *comp, const char *loglevel, const char *logfile)
   FILE *altlog;
   int dirwarn;
   char *fn;
+  const char *env_loglevel;
+  int env_minlevel = 0;
+  int env_min_force_level = 100000;
 
 #ifdef WINDOWS
   QueryPerformanceFrequency (&performance_frequency);
@@ -188,7 +191,17 @@ GNUNET_log_setup (const char *comp, const char *loglevel, const char *logfile)
                   "%s-%d",
                   comp,
                   getpid());
+  env_loglevel = getenv ("GNUNET_LOGLEVEL");
+  if (env_loglevel != NULL)
+    env_minlevel = get_type (env_loglevel);
+  env_loglevel = getenv ("GNUNET_FORCE_LOGLEVEL");
+  if (env_loglevel != NULL)
+    env_min_force_level = get_type (env_loglevel);
   min_level = get_type (loglevel);
+  if (env_minlevel > min_level)
+    min_level = env_minlevel;
+  if (env_min_force_level < min_level)
+    min_level = env_min_force_level;
   if (logfile == NULL)
     return GNUNET_OK;
   fn = GNUNET_STRINGS_filename_expand (logfile);