summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFlorian Wehner <florian@whnr.de>2019-03-07 20:14:55 -0500
committerAllan McRae <allan@archlinux.org>2019-03-19 11:53:30 +1000
commitc61cd050f9b6475ea128a1da02e88b284ac509b5 (patch)
tree943d9466c0c0d865dc830d9cd0d3abd650a7bd7e
parentc0e9be7973be6c81b22fde91516fb8991e7bb07b (diff)
downloadpacman-c61cd050f9b6475ea128a1da02e88b284ac509b5.tar.gz
pacman-c61cd050f9b6475ea128a1da02e88b284ac509b5.zip
Reformatting log timestamp to include time-zone
The time logged is currently given as localtime without any timezone information. This is confusing in various scenarios. Examples: * If one is travelling across time-zones and the timestamps in the log appear out of order. * Comparing dates with `datediff` gives an offset by the time-zone This patch would reformat the time-stamp to a full ISO-8601 version. It includes the 'T' separating date and time including seconds. Old: [2019-03-04 16:15] New: [2019-03-04T16:15:45-05:00] Signed-off-by: Florian Wehner <florian@whnr.de> Signed-off-by: Allan McRae <allan@archlinux.org>
-rw-r--r--lib/libalpm/log.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/lib/libalpm/log.c b/lib/libalpm/log.c
index e46ad3c3..d8842a55 100644
--- a/lib/libalpm/log.c
+++ b/lib/libalpm/log.c
@@ -22,6 +22,7 @@
#include <stdarg.h>
#include <errno.h>
#include <syslog.h>
+#include <time.h>
/* libalpm */
#include "log.h"
@@ -38,11 +39,12 @@ static int _alpm_log_leader(FILE *f, const char *prefix)
{
time_t t = time(NULL);
struct tm *tm = localtime(&t);
+ int length = 32;
+ char timestamp[length];
/* Use ISO-8601 date format */
- return fprintf(f, "[%04d-%02d-%02d %02d:%02d] [%s] ",
- tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday,
- tm->tm_hour, tm->tm_min, prefix);
+ strftime(timestamp,length,"%FT%X%z", tm);
+ return fprintf(f, "[%s] [%s] ", timestamp, prefix);
}
/** A printf-like function for logging.