diff options
Diffstat (limited to 'src/libnm-log-core/nm-logging.c')
| -rw-r--r-- | src/libnm-log-core/nm-logging.c | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/src/libnm-log-core/nm-logging.c b/src/libnm-log-core/nm-logging.c index 5cce508d..0909e799 100644 --- a/src/libnm-log-core/nm-logging.c +++ b/src/libnm-log-core/nm-logging.c @@ -665,7 +665,7 @@ _nm_log_impl(const char *file, char msg_stack[400]; gs_free char *msg_heap = NULL; const char *msg; - GTimeVal tv; + gint64 tv; int errsv; const NMLogDomain *cur_log_state; NMLogDomain cur_log_state_copy[_LOGL_N_REAL]; @@ -707,11 +707,26 @@ _nm_log_impl(const char *file, msg = nm_vsprintf_buf_or_alloc(fmt, fmt, msg_stack, &msg_heap, NULL); -#define MESSAGE_FMT "%s%-7s [%ld.%04ld] %s" -#define MESSAGE_ARG(prefix, tv, msg) \ - prefix, nm_log_level_desc[level].level_str, (tv).tv_sec, ((tv).tv_usec / 100), (msg) - - g_get_current_time(&tv); + /* We always print the level and the timestamp. + * + * Timestamps are very useful for understanding logfiles. While journalctl + * might record the timestamp, it is not present in plain `journalctl` output. + * Users who report a bug would simply send us the `journalctl` output and + * requesting an output with timestamps (even if it's stored somewhere inside + * journald) is not workable. + * + * We print the level, because this too, it's to quickly identify the severity + * of a message. + * + * We also do this for all messages (for all levels), because then the logging + * lines are formatted and aligned in a consistent way, which aids reading the + * logs. */ +#define MESSAGE_FMT "%s%-7s [%" G_GINT64_FORMAT ".%04d] %s" +#define MESSAGE_ARG(prefix, tv, msg) \ + prefix, nm_log_level_desc[level].level_str, ((tv) / NM_UTILS_USEC_PER_SEC), \ + ((int) ((((tv) % NM_UTILS_USEC_PER_SEC)) / ((gint64) 100))), (msg) + + tv = g_get_real_time(); if (g->debug_stderr) g_printerr(MESSAGE_FMT "\n", MESSAGE_ARG(g->prefix, tv, msg)); |