diff --git a/shared/nm-glib-aux/nm-logging-fwd.h b/shared/nm-glib-aux/nm-logging-fwd.h index 900dfff81..693803f9d 100644 --- a/shared/nm-glib-aux/nm-logging-fwd.h +++ b/shared/nm-glib-aux/nm-logging-fwd.h @@ -110,4 +110,21 @@ void _nm_log_impl (const char *file, const char *fmt, ...) _nm_printf (10, 11); +static inline NMLogLevel +nm_log_level_from_syslog (int syslog_level) +{ + switch (syslog_level) { + case 0 /* LOG_EMERG */ : return LOGL_ERR; + case 1 /* LOG_ALERT */ : return LOGL_ERR; + case 2 /* LOG_CRIT */ : return LOGL_ERR; + case 3 /* LOG_ERR */ : return LOGL_ERR; + case 4 /* LOG_WARNING */ : return LOGL_WARN; + case 5 /* LOG_NOTICE */ : return LOGL_INFO; + case 6 /* LOG_INFO */ : return LOGL_DEBUG; + case 7 /* LOG_DEBUG */ : return LOGL_TRACE; + default: + return syslog_level >= 0 ? LOGL_TRACE : LOGL_ERR; + } +} + #endif /* __NM_LOGGING_DEFINES_H__ */ diff --git a/shared/systemd/sd-adapt-shared/nm-sd-adapt-shared.h b/shared/systemd/sd-adapt-shared/nm-sd-adapt-shared.h index a285c3cdc..d38a39b15 100644 --- a/shared/systemd/sd-adapt-shared/nm-sd-adapt-shared.h +++ b/shared/systemd/sd-adapt-shared/nm-sd-adapt-shared.h @@ -21,8 +21,6 @@ #include "nm-default.h" -#include - #include "nm-glib-aux/nm-logging-fwd.h" /*****************************************************************************/ @@ -32,32 +30,18 @@ /*****************************************************************************/ -static inline NMLogLevel -_slog_level_to_nm (int slevel) -{ - switch (LOG_PRI (slevel)) { - case LOG_DEBUG: return LOGL_DEBUG; - case LOG_WARNING: return LOGL_WARN; - case LOG_CRIT: - case LOG_ERR: return LOGL_ERR; - case LOG_INFO: - case LOG_NOTICE: - default: return LOGL_INFO; - } -} - static inline int _nm_log_get_max_level_realm (void) { /* inline function, to avoid coverity warning about constant expression. */ - return LOG_DEBUG; + return 7 /* LOG_DEBUG */; } #define log_get_max_level_realm(realm) _nm_log_get_max_level_realm () #define log_internal_realm(level, error, file, line, func, format, ...) \ ({ \ const int _nm_e = (error); \ - const NMLogLevel _nm_l = _slog_level_to_nm ((level)); \ + const NMLogLevel _nm_l = nm_log_level_from_syslog (LOG_PRI (level)); \ \ if (_nm_log_enabled_impl (!(NM_THREAD_SAFE_ON_MAIN_THREAD), _nm_l, LOGD_SYSTEMD)) { \ const char *_nm_location = strrchr ((""file), '/'); \ diff --git a/src/nm-logging.c b/src/nm-logging.c index 48e51421b..79e3658ab 100644 --- a/src/nm-logging.c +++ b/src/nm-logging.c @@ -68,6 +68,15 @@ /*****************************************************************************/ +G_STATIC_ASSERT (LOG_EMERG == 0); +G_STATIC_ASSERT (LOG_ALERT == 1); +G_STATIC_ASSERT (LOG_CRIT == 2); +G_STATIC_ASSERT (LOG_ERR == 3); +G_STATIC_ASSERT (LOG_WARNING == 4); +G_STATIC_ASSERT (LOG_NOTICE == 5); +G_STATIC_ASSERT (LOG_INFO == 6); +G_STATIC_ASSERT (LOG_DEBUG == 7); + /* We have more then 32 logging domains. Assert that it compiles to a 64 bit sized enum */ G_STATIC_ASSERT (sizeof (NMLogDomain) >= sizeof (guint64));