From 0a0736fc4e010db5d17c8aa9a7a71567cdae26ea Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Thu, 19 Feb 2009 08:35:20 +0100 Subject: log: added log_early_init() for early debug messages --- src/cmdline.c | 5 +++++ src/log.c | 9 +++++++++ src/log.h | 11 +++++++++++ 3 files changed, 25 insertions(+) (limited to 'src') 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); -- cgit v1.2.3