Merge branch 'collectd-4.1' into collectd-4.2
authorFlorian Forster <octo@huhu.verplant.org>
Mon, 21 Jan 2008 17:28:27 +0000 (18:28 +0100)
committerFlorian Forster <octo@huhu.verplant.org>
Mon, 21 Jan 2008 17:28:27 +0000 (18:28 +0100)
1  2 
src/collectd-exec.pod
src/logfile.c

diff --combined src/collectd-exec.pod
@@@ -42,13 -42,17 +42,17 @@@ I<Value-List>, separated by a spaces. 
  An I<Identifier> is of the form
  C<I<host>B</>I<plugin>B<->I<instance>B</>I<type>B<->I<instance>> with both
  I<instance>-parts being optional. If they're omitted the hyphen must be
- omitted, too.
+ omitted, too. I<plugin> and each I<instance>-part may be chosen freely as long
+ as the tuple (plugin, plugin instance, type instance) uniquely identifies the
+ plugin within collectd. I<type> identifies the type and number of values
+ (i.E<nbsp>e. data-set) passed to collectd. A large list of predefined
+ data-sets is available in the B<types.db> file.
  
  The I<OptionList> is an optional list of I<Options>, where each option if a
  key-value-pair. A list of currently understood options can be found below, all
  other options will be ignored.
  
 -I<Valuelist> is a colon-seperated list of the time and the values, each either
 +I<Valuelist> is a colon-separated list of the time and the values, each either
  an integer if the data-source is a counter, of a double if the data-source if
  of type "gauge". You can submit an undefined gauge-value by using B<U>. When
  submitting B<U> to a counter the behavior is undefined. The time is given as
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);
        }