Difference between revisions of "GnuCash Log Domains"

From GnuCash
Jump to: navigation, search
(Add breakout for defined log domains in GnuCash)
 
(Add breakout for defined log domains in GnuCash)
Line 1: Line 1:
 
= GnuCash log-domains =
 
= GnuCash log-domains =
The following domains are defined for Gnucash (as at 4th Sept., 2018) by macros in gnc_engine.h.
+
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.
 
<syntaxhighlight lang="C">
 
<syntaxhighlight lang="C">
 
#define GNC_MOD_ROOT      "gnc"
 
#define GNC_MOD_ROOT      "gnc"
Line 30: Line 30:
 
The '''log-domain''' applied a given section of code is defined by including a line of the form:
 
The '''log-domain''' applied a given section of code is defined by including a line of the form:
 
<syntaxhighlight lang="C">static QofLogModule log_module = GNC_MOD_IMPORT;</syntaxhighlight>
 
<syntaxhighlight lang="C">static QofLogModule log_module = GNC_MOD_IMPORT;</syntaxhighlight>
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. They define specific 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 log-domains either in ./gnucash/log.conf or when 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<syntaxhighlight lang="sh">$gnucash --log gnc.import=debug </syntaxhighlight> enables debug level information to be output by code which is defined in the log-domain gnc.import, where gnc refers to gnucash and import refers to areas of code associated with importing data.
+
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<syntaxhighlight lang="sh">$gnucash --log gnc.import=debug </syntaxhighlight> 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.

Revision as of 04:44, 4 September 2018

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.