From f0d89dbfdaa1259f0d34cd4da777549158b03ca7 Mon Sep 17 00:00:00 2001 From: Neil Williams Date: Sun, 29 Jan 2006 17:49:35 +0000 Subject: [PATCH] reverting r12999 and implementing a set of default log modules git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@13027 57a11ea4-9604-0410-9ed3-97b8803252fd --- lib/libqof/qof/qoflog.c | 10 +++------- src/bin/gnucash-bin.c | 2 ++ src/engine/gnc-engine.c | 32 ++++++++++++++++++++++++++++++++ src/engine/gnc-engine.h | 3 +++ 4 files changed, 40 insertions(+), 7 deletions(-) diff --git a/lib/libqof/qof/qoflog.c b/lib/libqof/qof/qoflog.c index 004378a48c..62fb51fafd 100644 --- a/lib/libqof/qof/qoflog.c +++ b/lib/libqof/qof/qoflog.c @@ -48,7 +48,6 @@ static gchar* function_buffer = NULL; static const int MAX_TRACE_FILENAME = 100; static GHashTable *log_table = NULL; static gint qof_log_num_spaces = 0; -static QofLogLevel global_default_loglevel = 0; /* uses the enum_as_string macro. Lookups are done on the string. */ @@ -136,7 +135,6 @@ qof_log_set_level_global(QofLogLevel level) gchar* level_string; if(!log_table || level == 0) { return; } - global_default_loglevel = level; level_string = g_strdup(QofLogLevelasString(level)); g_hash_table_foreach(log_table, log_module_foreach, level_string); } @@ -312,11 +310,9 @@ qof_log_check(QofLogModule log_module, QofLogLevel log_level) log_string = NULL; if(!log_table || log_module == NULL || log_level == 0) { return FALSE; } log_string = (gchar*)g_hash_table_lookup(log_table, log_module); - /* if log_module not found, use default. */ - if (log_string) - maximum = QofLogLevelfromString(log_string); - else - maximum = global_default_loglevel; + /* if log_module not found, do not log. */ + if(!log_string) { return FALSE; } + maximum = QofLogLevelfromString(log_string); if(log_level <= maximum) { return TRUE; } return FALSE; } diff --git a/src/bin/gnucash-bin.c b/src/bin/gnucash-bin.c index a922d9f933..6b7f915c7b 100644 --- a/src/bin/gnucash-bin.c +++ b/src/bin/gnucash-bin.c @@ -374,6 +374,8 @@ inner_main (void *closure, int argc, char **argv) before booting guile. */ gnc_main_gui_init(); + /* set a log level before trying to change it globally */ + gnc_log_default(); qof_log_set_level_global(loglevel); load_system_config(); diff --git a/src/engine/gnc-engine.c b/src/engine/gnc-engine.c index cfcad79ef6..3da13c26f2 100644 --- a/src/engine/gnc-engine.c +++ b/src/engine/gnc-engine.c @@ -147,6 +147,38 @@ gnc_engine_is_initialized (void) return (engine_is_initialized == 1) ? TRUE : FALSE; } +/* replicate old gnc-trace enum behaviour + * + * these are only here as a convenience, they could be + * initialised elsewhere as appropriate. + * */ +void gnc_log_default(void) +{ + qof_log_set_default(QOF_LOG_DETAIL); + qof_log_set_level(GNC_MOD_ENGINE, QOF_LOG_DETAIL); + qof_log_set_level(GNC_MOD_ACCOUNT, QOF_LOG_DETAIL); + qof_log_set_level(GNC_MOD_SX, QOF_LOG_DETAIL); + qof_log_set_level(GNC_MOD_QUERY, QOF_LOG_DETAIL); + qof_log_set_level(GNC_MOD_SCRUB, QOF_LOG_DETAIL); + qof_log_set_level(GNC_MOD_LOT, QOF_LOG_DETAIL); + qof_log_set_level(GNC_MOD_COMMODITY, QOF_LOG_DETAIL); + qof_log_set_level(GNC_MOD_BACKEND, QOF_LOG_DETAIL); + qof_log_set_level(GNC_MOD_PRICE, QOF_LOG_DETAIL); + qof_log_set_level(GNC_MOD_BUSINESS, QOF_LOG_DETAIL); + qof_log_set_level(GNC_MOD_IO, QOF_LOG_DETAIL); + qof_log_set_level(GNC_MOD_BOOK, QOF_LOG_DETAIL); + qof_log_set_level(GNC_MOD_GUI, QOF_LOG_DETAIL); + qof_log_set_level(GNC_MOD_GUILE, QOF_LOG_DETAIL); + qof_log_set_level(GNC_MOD_LEDGER, QOF_LOG_DETAIL); + qof_log_set_level(GNC_MOD_REGISTER, QOF_LOG_DETAIL); + qof_log_set_level(GNC_MOD_HTML, QOF_LOG_DETAIL); + qof_log_set_level(GNC_MOD_PREFS, QOF_LOG_DETAIL); + qof_log_set_level(GNC_MOD_IMPORT, QOF_LOG_DETAIL); + qof_log_set_level(GNC_MOD_DRUID, QOF_LOG_DETAIL); + qof_log_set_level(GNC_MOD_TEST, QOF_LOG_DETAIL); + qof_log_set_level(GNC_MOD_BUDGET, QOF_LOG_DETAIL); +} + /* ====================================================================== */ /* XXX This exports the list of accounts to a file. It does not export * any transactions. Its a place-holder until full book-closing is implemented. diff --git a/src/engine/gnc-engine.h b/src/engine/gnc-engine.h index c1281bcfb9..39320d224a 100644 --- a/src/engine/gnc-engine.h +++ b/src/engine/gnc-engine.h @@ -241,6 +241,9 @@ void gnc_engine_shutdown (void); /** check the engine is fully initialized */ gboolean gnc_engine_is_initialized(void); +/** enable default log modules */ +void gnc_log_default(void); + /** Pass a function pointer to gnc_engine_add_init_hook and * it will be called during the evaluation of gnc_engine_init */ void gnc_engine_add_init_hook(gnc_engine_init_hook_t hook);