GnuCash Log Domains

From GnuCash
Revision as of 04:44, 4 September 2018 by DaveC49 (talk | contribs) (Add breakout for defined log domains in GnuCash)
Jump to: navigation, search

GnuCash log-domains

The following domains associated with specific modules in the GnuCash code are defined for Gnucash (as at 4th Sept., 2018) by macros in gnc_engine.h.

#define GNC_MOD_ROOT      "gnc"
#define GNC_MOD_ENGINE    "gnc.engine"
#define GNC_MOD_ACCOUNT   "gnc.account"
#define GNC_MOD_SX        "gnc.engine.sx"
#define GNC_MOD_QUERY     "gnc.query"
#define GNC_MOD_SCRUB     "gnc.scrub"
#define GNC_MOD_LOT       "gnc.lots"
#define GNC_MOD_COMMODITY "gnc.commodity"
#define GNC_MOD_BACKEND   "gnc.backend"
#define GNC_MOD_PRICE     "gnc.pricedb"
#define GNC_MOD_BUSINESS  "gnc.business"
#define GNC_MOD_IO        "gnc.io"
#define GNC_MOD_BOOK      "gnc.book-period"
#define GNC_MOD_GUI       "gnc.gui"
#define GNC_MOD_GUI_SX    "gnc.gui.sx"
#define GNC_MOD_GUILE     "gnc.guile"
#define GNC_MOD_LEDGER    "gnc.ledger"
#define GNC_MOD_REGISTER  "gnc.register"
#define GNC_MOD_HTML      "gnc.html"
#define GNC_MOD_PREFS     "gnc.pref"
#define GNC_MOD_IMPORT    "gnc.import"
#define GNC_MOD_ASSISTANT "gnc.assistant"
#define GNC_MOD_TEST      "gnc.tests"
#define GNC_MOD_BUDGET    "gnc.budget"

The log-domain applied a given section of code is defined by including a line of the form:

static QofLogModule log_module = GNC_MOD_IMPORT;

substituting the appropriate macro from the above list in the C code after header files have been included. It should not be placed in any public header files as these may be include by C code in other code areas which are not in the specified domain.

The log-domains define specific modules or areas of the code where a log-level' can be set to control the level of logging information logged by that area of code. When setting a log-level for given log-domain, either in ./gnucash/log.conf or supplied as command line arguments, the string enclosed in quotes above is used to refer to the log-domain.

E.g. The command line switch
$gnucash --log gnc.import=debug
when GnuCash is started enables debug level information to be output by code which is defined in the log-domain gnc.import, where gnc refers to gnucash generally and import refers to code modules associated with importing data.