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.
This commit is contained in:
@@ -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)) {
|
||||
|
@@ -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,
|
||||
@@ -67,6 +73,7 @@ gboolean mm_log_setup (const gchar *level,
|
||||
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
|
||||
|
Reference in New Issue
Block a user