[PATCH] core: ensure the default log domain is always set
- From: Guillaume Emont <guijemont igalia com>
- To: grilo-list gnome org
- Cc: Guillaume Emont <guijemont igalia com>
- Subject: [PATCH] core: ensure the default log domain is always set
- Date: Wed, 11 May 2011 19:45:39 +0200
This also avoid the risky #define-ing of GRL_LOG_DOMAIN_DEFAULT in grl-log.c:
in this file, GLR_LOG_DOMAIN_DEFAULT now always refers to the actual variable,
to avoid confusions.
---
src/grl-log.c | 19 ++++++++++++++-----
1 files changed, 14 insertions(+), 5 deletions(-)
diff --git a/src/grl-log.c b/src/grl-log.c
index 5895b09..3033385 100644
--- a/src/grl-log.c
+++ b/src/grl-log.c
@@ -48,9 +48,11 @@ static GrlLogLevel grl_default_log_level = GRL_LOG_LEVEL_WARNING;
static GSList *log_domains = NULL; /* the list of GrlLogDomain's */
/* Catch all log domain */
+/* For clarity, it should not be re-#define'd in this file, code that wants to
+ * log things with log_log_domain should do it explicitly using GRL_LOG(),
+ * instead of using GRL_{DEBUG,INFO,MESSAGE,WARNING,ERROR}() */
GRL_LOG_DOMAIN(GRL_LOG_DOMAIN_DEFAULT);
-#define GRL_LOG_DOMAIN_DEFAULT log_log_domain
GRL_LOG_DOMAIN(log_log_domain);
static GrlLogDomain *
@@ -73,7 +75,7 @@ _grl_log_domain_new_internal (const gchar *name)
{
GrlLogDomain *domain;
- if (*name == '\0')
+ if (*name == '\0' && GRL_LOG_DOMAIN_DEFAULT != NULL)
return GRL_LOG_DOMAIN_DEFAULT;
domain = g_slice_new (GrlLogDomain);
@@ -82,6 +84,10 @@ _grl_log_domain_new_internal (const gchar *name)
log_domains = g_slist_prepend (log_domains, domain);
+ if (*name == '\0' && GRL_LOG_DOMAIN_DEFAULT == NULL)
+ /* Ensure GRL_LOG_DOMAIN_DEFAULT is set. */
+ GRL_LOG_DOMAIN_DEFAULT = domain;
+
return domain;
}
@@ -246,11 +252,13 @@ configure_log_domains (const gchar *domains)
domain->log_level = level;
- GRL_DEBUG ("domain: '%s', level: '%s'", domain_spec, level_spec);
+ GRL_LOG (log_log_domain, GRL_LOG_LEVEL_DEBUG,
+ "domain: '%s', level: '%s'", domain_spec, level_spec);
g_strfreev (pair_info);
} else {
- GRL_WARNING ("Invalid log spec: '%s'", *pair);
+ GRL_LOG (log_log_domain, GRL_LOG_LEVEL_WARNING,
+ "Invalid log spec: '%s'", *pair);
}
pair++;
}
@@ -329,7 +337,8 @@ _grl_log_init_core_domains (void)
* verbosity */
log_env = g_getenv ("GRL_DEBUG");
if (log_env) {
- GRL_DEBUG ("Using log configuration from GRL_DEBUG: %s", log_env);
+ GRL_LOG (log_log_domain, GRL_LOG_LEVEL_DEBUG,
+ "Using log configuration from GRL_DEBUG: %s", log_env);
configure_log_domains (log_env);
grl_log_env = g_strsplit (log_env, ",", 0);
}
--
1.7.1
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]