From: Marc-André Lureau Date: Thu, 7 Apr 2022 11:21:41 +0000 (+0400) Subject: qga: use fixed-length and GDateTime for log timestamp X-Git-Tag: v7.1.0-rc0~140^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=55fa0170721e827c1701db3a66a54d44b5660d53;p=thirdparty%2Fqemu.git qga: use fixed-length and GDateTime for log timestamp The old code is kind of wrong. Say it's 1649309843.000001 seconds past the epoch. Prints "1649309843.1". 9us later, it prints "1649309843.10". Should really use %06lu for the microseconds part. Use GDateTime instead, as suggested by Daniel. Suggested-by: Markus Armbruster Suggested-by: Daniel P. Berrangé Signed-off-by: Marc-André Lureau Reviewed-by: Daniel P. Berrangé --- diff --git a/qga/main.c b/qga/main.c index 3c20bf1fbfe..3b9546c1858 100644 --- a/qga/main.c +++ b/qga/main.c @@ -328,11 +328,9 @@ static void ga_log(const gchar *domain, GLogLevelFlags level, #else if (level & s->log_level) { #endif - gint64 t = g_get_real_time(); - fprintf(s->log_file, - "%" G_GINT64_FORMAT ".%" G_GINT64_FORMAT - ": %s: %s\n", t / G_USEC_PER_SEC, t % G_USEC_PER_SEC, - level_str, msg); + g_autoptr(GDateTime) now = g_date_time_new_now_utc(); + g_autofree char *nowstr = g_date_time_format(now, "%s.%f"); + fprintf(s->log_file, "%s: %s: %s\n", nowstr, level_str, msg); fflush(s->log_file); } }