Merge branch 'collectd-4.1' into collectd-4.2 collectd-4.2.4
authorFlorian Forster <octo@leeloo.lan.home.verplant.org>
Mon, 21 Jan 2008 10:01:03 +0000 (11:01 +0100)
committerFlorian Forster <octo@leeloo.lan.home.verplant.org>
Mon, 21 Jan 2008 10:01:03 +0000 (11:01 +0100)
1  2 
src/logfile.c

diff --combined src/logfile.c
@@@ -1,6 -1,7 +1,7 @@@
  /**
   * collectd - src/logfile.c
   * Copyright (C) 2007  Sebastian Harl
+  * Copyright (C) 2007  Florian Forster
   *
   * This program is free software; you can redistribute it and/or modify it
   * under the terms of the GNU General Public License as published by the
@@@ -35,13 -36,11 +36,13 @@@ static int log_level = LOG_INFO
  static pthread_mutex_t file_lock = PTHREAD_MUTEX_INITIALIZER;
  
  static char *log_file = NULL;
 +static int print_timestamp = 1;
  
  static const char *config_keys[] =
  {
        "LogLevel",
 -      "File"
 +      "File",
 +      "Timestamp"
  };
  static int config_keys_num = STATIC_ARRAY_SIZE (config_keys);
  
@@@ -70,14 -69,6 +71,14 @@@ static int logfile_config (const char *
                sfree (log_file);
                log_file = strdup (value);
        }
 +      else if (0 == strcasecmp (key, "Timestamp")) {
 +              if ((strcasecmp (value, "false") == 0)
 +                              || (strcasecmp (value, "no") == 0)
 +                              || (strcasecmp (value, "off") == 0))
 +                      print_timestamp = 0;
 +              else
 +                      print_timestamp = 1;
 +      }
        else {
                return -1;
        }
@@@ -88,23 -79,10 +89,23 @@@ static void logfile_log (int severity, 
  {
        FILE *fh;
        int do_close = 0;
 +      time_t timestamp_time;
 +      struct tm timestamp_tm;
 +      char timestamp_str[64];
  
        if (severity > log_level)
                return;
  
 +      if (print_timestamp)
 +      {
 +              timestamp_time = time (NULL);
 +              localtime_r (&timestamp_time, &timestamp_tm);
 +
 +              strftime (timestamp_str, sizeof (timestamp_str), "%Y-%m-%d %H:%M:%S",
 +                              &timestamp_tm);
 +              timestamp_str[sizeof (timestamp_str) - 1] = '\0';
 +      }
 +
        pthread_mutex_lock (&file_lock);
  
        if ((log_file == NULL) || (strcasecmp (log_file, "stderr") == 0))
        }
        else
        {
 -              fprintf (fh, "%s\n", msg);
 +              if (print_timestamp)
 +                      fprintf (fh, "[%s] %s\n", timestamp_str, msg);
 +              else
 +                      fprintf (fh, "%s\n", msg);
 +
                if (do_close != 0)
                        fclose (fh);
        }