static char *log_file = NULL;
static int print_timestamp = 1;
-static int print_level = 0;
+static int print_severity = 0;
static const char *config_keys[] =
{
"LogLevel",
"File",
"Timestamp",
- "PrintLevel"
+ "PrintSeverity"
};
static int config_keys_num = STATIC_ARRAY_SIZE (config_keys);
static int logfile_config (const char *key, const char *value)
{
if (0 == strcasecmp (key, "LogLevel")) {
- if ((0 == strcasecmp (value, "emerg"))
- || (0 == strcasecmp (value, "alert"))
- || (0 == strcasecmp (value, "crit"))
- || (0 == strcasecmp (value, "err")))
- log_level = LOG_ERR;
- else if (0 == strcasecmp (value, "warning"))
- log_level = LOG_WARNING;
- else if (0 == strcasecmp (value, "notice"))
- log_level = LOG_NOTICE;
- else if (0 == strcasecmp (value, "info"))
- log_level = LOG_INFO;
-#if COLLECT_DEBUG
- else if (0 == strcasecmp (value, "debug"))
- log_level = LOG_DEBUG;
-#endif /* COLLECT_DEBUG */
- else
- return 1;
+ log_level = parse_log_severity(value);
+ if (log_level == -1) return 1; /* to keep previous behaviour */
}
else if (0 == strcasecmp (key, "File")) {
sfree (log_file);
print_timestamp = 0;
else
print_timestamp = 1;
- } else if (0 == strcasecmp(key, "PrintLevel")) {
+ } else if (0 == strcasecmp(key, "PrintSeverity")) {
if (IS_FALSE (value))
- print_level = 0;
+ print_severity = 0;
else
- print_level = 1;
+ print_severity = 1;
}
else {
return -1;
return 0;
} /* int logfile_config (const char *, const char *) */
-static void logfile_print (const char *msg, int severity, time_t timestamp_time)
+static void logfile_print (const char *msg, int severity,
+ cdtime_t timestamp_time)
{
FILE *fh;
int do_close = 0;
struct tm timestamp_tm;
char timestamp_str[64];
- char level_str[16];
+ char level_str[16] = "";
- if (print_level)
+ if (print_severity)
{
switch (severity)
{
case LOG_ERR:
- snprintf(level_str, 15, "[error] ");
+ snprintf(level_str, sizeof (level_str), "[error] ");
break;
case LOG_WARNING:
- snprintf(level_str, 15, "[warning] ");
+ snprintf(level_str, sizeof (level_str), "[warning] ");
break;
case LOG_NOTICE:
- snprintf(level_str, 15, "[notice] ");
+ snprintf(level_str, sizeof (level_str), "[notice] ");
break;
case LOG_INFO:
- snprintf(level_str, 15, "[info] ");
+ snprintf(level_str, sizeof (level_str), "[info] ");
break;
case LOG_DEBUG:
- snprintf(level_str, 15, "[debug] ");
+ snprintf(level_str, sizeof (level_str), "[debug] ");
break;
default:
break;
if (print_timestamp)
{
- localtime_r (×tamp_time, ×tamp_tm);
+ time_t tt = CDTIME_T_TO_TIME_T (timestamp_time);
+ localtime_r (&tt, ×tamp_tm);
strftime (timestamp_str, sizeof (timestamp_str), "%Y-%m-%d %H:%M:%S",
×tamp_tm);
else
{
if (print_timestamp)
- fprintf (fh, "[%s] %s%s\n", timestamp_str,
- print_level ? level_str : "",
- msg);
+ fprintf (fh, "[%s] %s%s\n", timestamp_str, level_str, msg);
else
- fprintf (fh, "%s%s\n", print_level ? level_str : "",
- msg);
+ fprintf (fh, "%s%s\n", level_str, msg);
if (do_close != 0)
fclose (fh);
if (severity > log_level)
return;
- logfile_print (msg, severity, time (NULL));
+ logfile_print (msg, severity, cdtime ());
} /* void logfile_log (int, const char *) */
static int logfile_notification (const notification_t *n,
buf[sizeof (buf) - 1] = '\0';
logfile_print (buf, LOG_INFO,
- (n->time > 0) ? n->time : time (NULL));
+ (n->time != 0) ? n->time : cdtime ());
return (0);
} /* int logfile_notification */