aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2009-02-19 08:35:20 +0100
committerMax Kellermann <max@duempel.org>2009-02-19 08:35:20 +0100
commit0a0736fc4e010db5d17c8aa9a7a71567cdae26ea (patch)
tree2fc175bdacb0d1e56761b8c08498eed22a638da3 /src
parent84437acffb5996a9ea99b1d2ab96c68e9751b708 (diff)
log: added log_early_init() for early debug messages
Diffstat (limited to 'src')
-rw-r--r--src/cmdline.c5
-rw-r--r--src/log.c9
-rw-r--r--src/log.h11
3 files changed, 25 insertions, 0 deletions
diff --git a/src/cmdline.c b/src/cmdline.c
index 71173ae3..43fe46de 100644
--- a/src/cmdline.c
+++ b/src/cmdline.c
@@ -18,6 +18,7 @@
#include "cmdline.h"
#include "path.h"
+#include "log.h"
#include "conf.h"
#include "decoder_list.h"
#include "config.h"
@@ -123,6 +124,10 @@ void parseOptions(int argc, char **argv, Options *options)
if (option_version)
version();
+ /* initialize the logging library, so the configuration file
+ parser can use it already */
+ log_early_init(options->verbose);
+
if (option_create_db && option_no_create_db)
g_error("Cannot use both --create-db and --no-create-db\n");
diff --git a/src/log.c b/src/log.c
index e7326517..575ba430 100644
--- a/src/log.c
+++ b/src/log.c
@@ -217,6 +217,15 @@ parse_log_level(const char *value, unsigned line)
}
}
+void
+log_early_init(bool verbose)
+{
+ if (verbose)
+ log_threshold = G_LOG_LEVEL_DEBUG;
+
+ log_init_stdout();
+}
+
void log_init(bool verbose, bool use_stdout)
{
const struct config_param *param;
diff --git a/src/log.h b/src/log.h
index 5903b18a..df51ef1f 100644
--- a/src/log.h
+++ b/src/log.h
@@ -25,6 +25,17 @@
G_GNUC_PRINTF(1, 2) void DEBUG(const char *fmt, ...);
G_GNUC_PRINTF(1, 2) G_GNUC_NORETURN void FATAL(const char *fmt, ...);
+/**
+ * Configure a logging destination for daemon startup, before the
+ * configuration file is read. This allows the daemon to use the
+ * logging library (and the command line verbose level) before it's
+ * daemonized.
+ *
+ * @param verbose true when the program is started with --verbose
+ */
+void
+log_early_init(bool verbose);
+
void log_init(bool verbose, bool use_stdout);
void setup_log_output(bool use_stdout);