diff options
author | Aleksander Morgado <aleksandermj@chromium.org> | 2022-09-13 12:09:58 +0000 |
---|---|---|
committer | Aleksander Morgado <aleksandermj@chromium.org> | 2022-11-04 13:12:56 +0000 |
commit | 3592d98e5b9458a8b9ac9a42a130ec552e0d74da (patch) | |
tree | ba3757e63634085b3b800e3e042bd9e5c8af5c2f /src | |
parent | afb89bb78f4d099e114a76bce6096150d1bf1325 (diff) |
log: new methods to check if a given logging level is enabled
There are certain cases where we perform a lot of data processing just
for logging purposes. Having methods that let us know whether a given
log level will be printed before doing all that data processing is useful.
Diffstat (limited to 'src')
-rw-r--r-- | src/mm-log.c | 8 | ||||
-rw-r--r-- | src/mm-log.h | 27 |
2 files changed, 24 insertions, 11 deletions
diff --git a/src/mm-log.c b/src/mm-log.c index c633a660..c492ff9f 100644 --- a/src/mm-log.c +++ b/src/mm-log.c @@ -213,6 +213,12 @@ log_backend_systemd_journal (const char *loc, } #endif +gboolean +mm_log_check_level_enabled (MMLogLevel level) +{ + return (log_level & level); +} + void _mm_log (gpointer obj, const gchar *module, @@ -225,7 +231,7 @@ _mm_log (gpointer obj, va_list args; GTimeVal tv; - if (!(log_level & level)) + if (!mm_log_check_level_enabled (level)) return; if (g_once_init_enter (&msgbuf_once)) { diff --git a/src/mm-log.h b/src/mm-log.h index 4102c3b6..b0dab7ae 100644 --- a/src/mm-log.h +++ b/src/mm-log.h @@ -50,6 +50,12 @@ typedef enum { # define mm_dbg(...) mm_obj_dbg (NULL, ## __VA_ARGS__ ) #endif +#define mm_log_err_enabled() mm_log_check_level_enabled (MM_LOG_LEVEL_ERR) +#define mm_log_warn_enabled() mm_log_check_level_enabled (MM_LOG_LEVEL_WARN) +#define mm_log_msg_enabled() mm_log_check_level_enabled (MM_LOG_LEVEL_MSG) +#define mm_log_info_enabled() mm_log_check_level_enabled (MM_LOG_LEVEL_INFO) +#define mm_log_debug_enabled() mm_log_check_level_enabled (MM_LOG_LEVEL_DEBUG) + void _mm_log (gpointer obj, const gchar *module, const gchar *loc, @@ -58,16 +64,17 @@ void _mm_log (gpointer obj, const gchar *fmt, ...) __attribute__((__format__ (__printf__, 6, 7))); -gboolean mm_log_set_level (const gchar *level, - GError **error); -gboolean mm_log_setup (const gchar *level, - const gchar *log_file, - gboolean log_journal, - gboolean show_ts, - gboolean rel_ts, - gboolean show_personal_info, - GError **error); -void mm_log_shutdown (void); +gboolean mm_log_set_level (const gchar *level, + GError **error); +gboolean mm_log_setup (const gchar *level, + const gchar *log_file, + gboolean log_journal, + gboolean show_ts, + gboolean rel_ts, + gboolean show_personal_info, + GError **error); +gboolean mm_log_check_level_enabled (MMLogLevel level); +void mm_log_shutdown (void); /* Helper used when printing a string that may be personal * info. Depending on the settings, we may print it as-is, |