Mercurial > sci
changeset 25:c40f98360ac9
misc: improve console logging
author | David Demelier <markand@malikania.fr> |
---|---|
date | Mon, 25 Jul 2022 21:22:13 +0200 |
parents | 34cbbd215ef7 |
children | 7e10cace67a3 |
files | lib/log.c |
diffstat | 1 files changed, 13 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/lib/log.c Mon Jul 25 21:11:23 2022 +0200 +++ b/lib/log.c Mon Jul 25 21:22:13 2022 +0200 @@ -19,6 +19,7 @@ #include <assert.h> #include <stdio.h> #include <syslog.h> +#include <time.h> #include "log.h" @@ -35,6 +36,12 @@ [LOG_LEVEL_WARNING] = LOG_WARNING }; +static const char * const levelsyms[] = { + [LOG_LEVEL_DEBUG] = "D", + [LOG_LEVEL_INFO] = "I", + [LOG_LEVEL_WARNING] = "W" +}; + void log_open(const char *name) { @@ -62,11 +69,15 @@ assert(level >= LOG_LEVEL_WARNING && level <= LOG_LEVEL_DEBUG); assert(fmt); - char line[BUFSIZ]; + char line[BUFSIZ] = {0}, timebuf[32] = {0}; + time_t timestamp = time(NULL); + struct tm *tm = localtime(×tamp); vsnprintf(line, sizeof (line), fmt, ap); syslog(syslog_levels[level], "%s", line); - printf("%s\n", line); + + strftime(timebuf, sizeof (timebuf), "%F %T", tm); + printf("%s %s %s\n", timebuf, levelsyms[level], line); } void