logging: move static variable with logging state to file-scope

This commit is contained in:
Thomas Haller 2016-05-19 19:01:58 +02:00
parent 1a070f6a44
commit a9ef2f9c50

View file

@ -98,9 +98,15 @@ typedef struct {
LogFormatFlags log_format_level; LogFormatFlags log_format_level;
} LogLevelDesc; } LogLevelDesc;
static NMLogDomain _nm_logging_enabled_state[_LOGL_N_REAL] = {
/* nm_logging_setup ("INFO", LOGD_DEFAULT_STRING, NULL, NULL); */
[LOGL_INFO] = LOGD_DEFAULT,
[LOGL_WARN] = LOGD_DEFAULT,
[LOGL_ERR] = LOGD_DEFAULT,
};
static struct { static struct {
NMLogLevel log_level; NMLogLevel log_level;
NMLogDomain logging[_LOGL_N_REAL];
LogFormatFlags log_format_flags; LogFormatFlags log_format_flags;
enum { enum {
LOG_BACKEND_GLIB, LOG_BACKEND_GLIB,
@ -117,11 +123,6 @@ static struct {
} global = { } global = {
/* nm_logging_setup ("INFO", LOGD_DEFAULT_STRING, NULL, NULL); */ /* nm_logging_setup ("INFO", LOGD_DEFAULT_STRING, NULL, NULL); */
.log_level = LOGL_INFO, .log_level = LOGL_INFO,
.logging = {
[LOGL_INFO] = LOGD_DEFAULT,
[LOGL_WARN] = LOGD_DEFAULT,
[LOGL_ERR] = LOGD_DEFAULT,
},
.log_backend = LOG_BACKEND_GLIB, .log_backend = LOG_BACKEND_GLIB,
.log_format_flags = _LOG_FORMAT_FLAG_DEFAULT, .log_format_flags = _LOG_FORMAT_FLAG_DEFAULT,
.level_desc = { .level_desc = {
@ -216,7 +217,7 @@ nm_logging_setup (const char *level,
GError **error) GError **error)
{ {
GString *unrecognized = NULL; GString *unrecognized = NULL;
NMLogDomain new_logging[G_N_ELEMENTS (global.logging)]; NMLogDomain new_logging[G_N_ELEMENTS (_nm_logging_enabled_state)];
NMLogLevel new_log_level = global.log_level; NMLogLevel new_log_level = global.log_level;
char **tmp, **iter; char **tmp, **iter;
int i; int i;
@ -240,7 +241,7 @@ nm_logging_setup (const char *level,
if (new_log_level == _LOGL_KEEP) { if (new_log_level == _LOGL_KEEP) {
new_log_level = global.log_level; new_log_level = global.log_level;
for (i = 0; i < G_N_ELEMENTS (new_logging); i++) for (i = 0; i < G_N_ELEMENTS (new_logging); i++)
new_logging[i] = global.logging[i]; new_logging[i] = _nm_logging_enabled_state[i];
} }
} }
@ -308,7 +309,7 @@ nm_logging_setup (const char *level,
if (domain_log_level == _LOGL_KEEP) { if (domain_log_level == _LOGL_KEEP) {
for (i = 0; i < G_N_ELEMENTS (new_logging); i++) for (i = 0; i < G_N_ELEMENTS (new_logging); i++)
new_logging[i] = (new_logging[i] & ~bits) | (global.logging[i] & bits); new_logging[i] = (new_logging[i] & ~bits) | (_nm_logging_enabled_state[i] & bits);
} else { } else {
for (i = 0; i < G_N_ELEMENTS (new_logging); i++) { for (i = 0; i < G_N_ELEMENTS (new_logging); i++) {
if (i < domain_log_level) if (i < domain_log_level)
@ -326,7 +327,7 @@ nm_logging_setup (const char *level,
global.log_level = new_log_level; global.log_level = new_log_level;
for (i = 0; i < G_N_ELEMENTS (new_logging); i++) for (i = 0; i < G_N_ELEMENTS (new_logging); i++)
global.logging[i] = new_logging[i]; _nm_logging_enabled_state[i] = new_logging[i];
if ( had_platform_debug if ( had_platform_debug
&& _nm_logging_clear_platform_logging_cache && _nm_logging_clear_platform_logging_cache
@ -391,7 +392,7 @@ _domains_to_string (gboolean include_level_override)
str = g_string_sized_new (75); str = g_string_sized_new (75);
for (diter = &global.domain_desc[0]; diter->name; diter++) { for (diter = &global.domain_desc[0]; diter->name; diter++) {
/* If it's set for any lower level, it will also be set for LOGL_ERR */ /* If it's set for any lower level, it will also be set for LOGL_ERR */
if (!(diter->num & global.logging[LOGL_ERR])) if (!(diter->num & _nm_logging_enabled_state[LOGL_ERR]))
continue; continue;
if (str->len) if (str->len)
@ -403,15 +404,15 @@ _domains_to_string (gboolean include_level_override)
/* Check if it's logging at a lower level than the default. */ /* Check if it's logging at a lower level than the default. */
for (i = 0; i < global.log_level; i++) { for (i = 0; i < global.log_level; i++) {
if (diter->num & global.logging[i]) { if (diter->num & _nm_logging_enabled_state[i]) {
g_string_append_printf (str, ":%s", global.level_desc[i].name); g_string_append_printf (str, ":%s", global.level_desc[i].name);
break; break;
} }
} }
/* Check if it's logging at a higher level than the default. */ /* Check if it's logging at a higher level than the default. */
if (!(diter->num & global.logging[global.log_level])) { if (!(diter->num & _nm_logging_enabled_state[global.log_level])) {
for (i = global.log_level + 1; i < G_N_ELEMENTS (global.logging); i++) { for (i = global.log_level + 1; i < G_N_ELEMENTS (_nm_logging_enabled_state); i++) {
if (diter->num & global.logging[i]) { if (diter->num & _nm_logging_enabled_state[i]) {
g_string_append_printf (str, ":%s", global.level_desc[i].name); g_string_append_printf (str, ":%s", global.level_desc[i].name);
break; break;
} }
@ -447,9 +448,9 @@ nm_logging_all_domains_to_string (void)
gboolean gboolean
nm_logging_enabled (NMLogLevel level, NMLogDomain domain) nm_logging_enabled (NMLogLevel level, NMLogDomain domain)
{ {
nm_assert (((guint) level) < G_N_ELEMENTS (global.logging)); nm_assert (((guint) level) < G_N_ELEMENTS (_nm_logging_enabled_state));
return !!(global.logging[level] & domain); return !!(_nm_logging_enabled_state[level] & domain);
} }
#if SYSTEMD_JOURNAL #if SYSTEMD_JOURNAL
@ -496,10 +497,10 @@ _nm_log_impl (const char *file,
char s_buf_location[1024]; char s_buf_location[1024];
GTimeVal tv; GTimeVal tv;
if ((guint) level >= G_N_ELEMENTS (global.logging)) if ((guint) level >= G_N_ELEMENTS (_nm_logging_enabled_state))
g_return_if_reached (); g_return_if_reached ();
if (!(global.logging[level] & domain)) if (!(_nm_logging_enabled_state[level] & domain))
return; return;
/* Make sure that %m maps to the specified error */ /* Make sure that %m maps to the specified error */
@ -588,7 +589,7 @@ _nm_log_impl (const char *file,
const char *s_domain_1 = NULL; const char *s_domain_1 = NULL;
GString *s_domain_all = NULL; GString *s_domain_all = NULL;
NMLogDomain dom_all = domain; NMLogDomain dom_all = domain;
NMLogDomain dom = dom_all & global.logging[level]; NMLogDomain dom = dom_all & _nm_logging_enabled_state[level];
for (diter = &global.domain_desc[0]; diter->name; diter++) { for (diter = &global.domain_desc[0]; diter->name; diter++) {
if (!NM_FLAGS_HAS (dom_all, diter->num)) if (!NM_FLAGS_HAS (dom_all, diter->num))