static char *log_file = NULL;
static int print_timestamp = 1;
+static int print_level = 0;
static const char *config_keys[] =
{
"LogLevel",
"File",
- "Timestamp"
+ "Timestamp",
+ "PrintLevel"
};
static int config_keys_num = STATIC_ARRAY_SIZE (config_keys);
print_timestamp = 0;
else
print_timestamp = 1;
+ } else if (0 == strcasecmp(key, "PrintLevel")) {
+ if (IS_FALSE (value))
+ print_level = 0;
+ else
+ print_level = 1;
}
else {
return -1;
return 0;
} /* int logfile_config (const char *, const char *) */
-static void logfile_print (const char *msg, time_t timestamp_time)
+static void logfile_print (const char *msg, int severity, time_t timestamp_time)
{
FILE *fh;
int do_close = 0;
struct tm timestamp_tm;
char timestamp_str[64];
+ char level_str[16];
+
+ if (print_level)
+ {
+ switch (severity)
+ {
+ case LOG_ERR:
+ snprintf(level_str, 15, "[error] ");
+ break;
+ case LOG_WARNING:
+ snprintf(level_str, 15, "[warning] ");
+ break;
+ case LOG_NOTICE:
+ snprintf(level_str, 15, "[notice] ");
+ break;
+ case LOG_INFO:
+ snprintf(level_str, 15, "[info] ");
+ break;
+ case LOG_DEBUG:
+ snprintf(level_str, 15, "[debug] ");
+ break;
+ default:
+ break;
+ }
+ }
if (print_timestamp)
{
else
{
if (print_timestamp)
- fprintf (fh, "[%s] %s\n", timestamp_str, msg);
+ fprintf (fh, "[%s] %s%s\n", timestamp_str,
+ print_level ? level_str : "",
+ msg);
else
- fprintf (fh, "%s\n", msg);
+ fprintf (fh, "%s%s\n", print_level ? level_str : "",
+ msg);
if (do_close != 0)
fclose (fh);
if (severity > log_level)
return;
- logfile_print (msg, time (NULL));
+ logfile_print (msg, severity, time (NULL));
} /* void logfile_log (int, const char *) */
static int logfile_notification (const notification_t *n,
buf[sizeof (buf) - 1] = '\0';
- logfile_print (buf,
+ logfile_print (buf, LOG_INFO,
(n->time > 0) ? n->time : time (NULL));
return (0);