diff --git a/src/libnm-glib-aux/nm-logging-base.c b/src/libnm-glib-aux/nm-logging-base.c index e11bd9f356..b07c62f4a2 100644 --- a/src/libnm-glib-aux/nm-logging-base.c +++ b/src/libnm-glib-aux/nm-logging-base.c @@ -6,6 +6,8 @@ #include +#include "nm-time-utils.h" + /*****************************************************************************/ const LogLevelDesc nm_log_level_desc[_LOGL_N] = { @@ -77,3 +79,43 @@ _nm_log_parse_level(const char *level, NMLogLevel *out_level) return FALSE; } + +void +_nm_log_simple_printf(NMLogLevel level, const char *fmt, ...) +{ + gs_free char *msg = NULL; + va_list ap; + const char * level_str; + gint64 ts; + + va_start(ap, fmt); + msg = g_strdup_vprintf(fmt, ap); + va_end(ap); + + switch (level) { + case LOGL_TRACE: + level_str = ""; + break; + case LOGL_DEBUG: + level_str = ""; + break; + case LOGL_INFO: + level_str = " "; + break; + case LOGL_WARN: + level_str = " "; + break; + default: + nm_assert(level == LOGL_ERR); + level_str = ""; + break; + } + + ts = nm_utils_clock_gettime_nsec(CLOCK_BOOTTIME); + + g_print("[%" G_GINT64_FORMAT ".%05" G_GINT64_FORMAT "] %s %s\n", + ts / NM_UTILS_NSEC_PER_SEC, + (ts / (NM_UTILS_NSEC_PER_SEC / 10000)) % 10000, + level_str, + msg); +} diff --git a/src/libnm-glib-aux/nm-logging-base.h b/src/libnm-glib-aux/nm-logging-base.h index 136f0c0425..538e85236c 100644 --- a/src/libnm-glib-aux/nm-logging-base.h +++ b/src/libnm-glib-aux/nm-logging-base.h @@ -25,4 +25,6 @@ extern const LogLevelDesc nm_log_level_desc[_LOGL_N]; gboolean _nm_log_parse_level(const char *level, NMLogLevel *out_level); +void _nm_log_simple_printf(NMLogLevel level, const char *fmt, ...) _nm_printf(2, 3); + #endif /* __NM_LOGGING_BASE_H__ */