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(&timestamp);
 
 	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