diff --git a/Makefile.am b/Makefile.am index 0e72432039..ed08230973 100644 --- a/Makefile.am +++ b/Makefile.am @@ -5172,6 +5172,7 @@ src_nm_cloud_setup_nm_cloud_setup_LDADD = \ src/libnm-core-aux-intern/libnm-core-aux-intern.la \ src/libnm-base/libnm-base.la \ src/libnm-glib-aux/libnm-glib-aux.la \ + src/libnm-log-null/libnm-log-null.la \ src/libnm-std-aux/libnm-std-aux.la \ src/c-siphash/libc-siphash.la \ src/libnm-client-impl/libnm.la \ @@ -5236,6 +5237,7 @@ src_nm_cloud_setup_tests_test_cloud_setup_general_LDADD = \ src/libnm-core-aux-intern/libnm-core-aux-intern.la \ src/libnm-base/libnm-base.la \ src/libnm-glib-aux/libnm-glib-aux.la \ + src/libnm-log-null/libnm-log-null.la \ src/libnm-std-aux/libnm-std-aux.la \ src/c-siphash/libc-siphash.la \ src/libnm-client-impl/libnm.la \ diff --git a/src/libnm-glib-aux/nm-logging-base.c b/src/libnm-glib-aux/nm-logging-base.c index e11bd9f356..cc19ef15db 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,61 @@ _nm_log_parse_level(const char *level, NMLogLevel *out_level) return FALSE; } + +/*****************************************************************************/ + +volatile NMLogLevel _nm_logging_enabled_value = LOGL_TRACE; + +void +_nm_logging_enabled_init(const char *level_str) +{ + NMLogLevel level; + + if (!_nm_log_parse_level(level_str, &level)) + level = LOGL_WARN; + else if (level == _LOGL_KEEP) + level = LOGL_WARN; + + _nm_logging_enabled_value = level; +} + +/*****************************************************************************/ + +void +_nm_log_simple_printf(NMLogLevel level, const char *fmt, ...) +{ + gs_free char *msg_heap = NULL; + char msg_stack[700]; + const char * msg; + const char * level_str; + gint64 ts; + + ts = nm_utils_clock_gettime_nsec(CLOCK_BOOTTIME); + + msg = nm_vsprintf_buf_or_alloc(fmt, fmt, msg_stack, &msg_heap, NULL); + + 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; + } + + 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..3d76b37861 100644 --- a/src/libnm-glib-aux/nm-logging-base.h +++ b/src/libnm-glib-aux/nm-logging-base.h @@ -25,4 +25,20 @@ extern const LogLevelDesc nm_log_level_desc[_LOGL_N]; gboolean _nm_log_parse_level(const char *level, NMLogLevel *out_level); +/*****************************************************************************/ + +extern volatile NMLogLevel _nm_logging_enabled_value; + +static inline gboolean +_nm_logging_enabled(NMLogLevel level) +{ + return level >= _nm_logging_enabled_value; +} + +void _nm_logging_enabled_init(const char *level_str); + +/*****************************************************************************/ + +void _nm_log_simple_printf(NMLogLevel level, const char *fmt, ...) _nm_printf(2, 3); + #endif /* __NM_LOGGING_BASE_H__ */ diff --git a/src/nm-cloud-setup/nm-cloud-setup-utils.c b/src/nm-cloud-setup/nm-cloud-setup-utils.c index ed36b4dd2f..206461e4d0 100644 --- a/src/nm-cloud-setup/nm-cloud-setup-utils.c +++ b/src/nm-cloud-setup/nm-cloud-setup-utils.c @@ -13,69 +13,6 @@ /*****************************************************************************/ -volatile NMLogLevel _nm_logging_configured_level = LOGL_TRACE; - -void -_nm_logging_enabled_init(const char *level_str) -{ - NMLogLevel level; - - if (!_nm_log_parse_level(level_str, &level)) - level = LOGL_WARN; - else if (level == _LOGL_KEEP) - level = LOGL_WARN; - - _nm_logging_configured_level = level; -} - -void -_nm_log_impl_cs(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); -} - -void -_nm_utils_monotonic_timestamp_initialized(const struct timespec *tp, - gint64 offset_sec, - gboolean is_boottime) -{} - -/*****************************************************************************/ - G_LOCK_DEFINE_STATIC(_wait_for_objects_lock); static GSList *_wait_for_objects_list; static GSList *_wait_for_objects_iterate_loops; diff --git a/src/nm-cloud-setup/nm-cloud-setup-utils.h b/src/nm-cloud-setup/nm-cloud-setup-utils.h index bb47db26d5..e1502b9525 100644 --- a/src/nm-cloud-setup/nm-cloud-setup-utils.h +++ b/src/nm-cloud-setup/nm-cloud-setup-utils.h @@ -3,7 +3,7 @@ #ifndef __NM_CLOUD_SETUP_UTILS_H__ #define __NM_CLOUD_SETUP_UTILS_H__ -#include "libnm-glib-aux/nm-logging-fwd.h" +#include "libnm-glib-aux/nm-logging-base.h" /*****************************************************************************/ @@ -13,26 +13,14 @@ /*****************************************************************************/ -extern volatile NMLogLevel _nm_logging_configured_level; - -static inline gboolean -nm_logging_enabled(NMLogLevel level) -{ - return level >= _nm_logging_configured_level; -} - -void _nm_logging_enabled_init(const char *level_str); - -void _nm_log_impl_cs(NMLogLevel level, const char *fmt, ...) _nm_printf(2, 3); - -#define _nm_log(level, ...) _nm_log_impl_cs((level), __VA_ARGS__); +#define _nm_log(level, ...) _nm_log_simple_printf((level), __VA_ARGS__); #define _NMLOG(level, ...) \ G_STMT_START \ { \ const NMLogLevel _level = (level); \ \ - if (nm_logging_enabled(_level)) { \ + if (_nm_logging_enabled(_level)) { \ _nm_log(_level, __VA_ARGS__); \ } \ } \