summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 525de68)
raw | patch | inline | side by side (parent: 525de68)
author | Clément Stenac <clement.stenac@diwi.org> | |
Sat, 27 Feb 2010 20:08:53 +0000 (21:08 +0100) | ||
committer | Clément Stenac <clement.stenac@diwi.org> | |
Sat, 27 Feb 2010 20:08:53 +0000 (21:08 +0100) |
src/logfile.c | patch | blob | history |
diff --git a/src/logfile.c b/src/logfile.c
index 7b96ac57fcb21130a42a74e5342303503c2a88aa..71ddec68e764fd51c0dbeb3d5c16e6985cc2e2f6 100644 (file)
--- a/src/logfile.c
+++ b/src/logfile.c
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);