Difference between revisions of "GnuCash Log Domains"
From GnuCash
m (→GnuCash log-domains: link gnc_engine.h and update its content) |
|||
Line 1: | Line 1: | ||
= GnuCash log-domains = | = GnuCash log-domains = | ||
− | The following domains associated with specific modules in the GnuCash code are defined for Gnucash (as at | + | The following domains associated with specific modules in the GnuCash code are defined for Gnucash (as at 2023-04-18) by macros in [{{URL:git}}gnucash/blob/stable/libgnucash/engine/gnc-engine.h#L49-L71 gnc_engine.h]. |
<syntaxhighlight lang="C"> | <syntaxhighlight lang="C"> | ||
#define GNC_MOD_ROOT "gnc" | #define GNC_MOD_ROOT "gnc" | ||
Line 24: | Line 24: | ||
#define GNC_MOD_IMPORT "gnc.import" | #define GNC_MOD_IMPORT "gnc.import" | ||
#define GNC_MOD_ASSISTANT "gnc.assistant" | #define GNC_MOD_ASSISTANT "gnc.assistant" | ||
− | |||
#define GNC_MOD_BUDGET "gnc.budget" | #define GNC_MOD_BUDGET "gnc.budget" | ||
</syntaxhighlight> | </syntaxhighlight> |
Latest revision as of 23:41, 18 April 2023
GnuCash log-domains
The following domains associated with specific modules in the GnuCash code are defined for Gnucash (as at 2023-04-18) 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_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;
#define G_LOG_DOMAIN GNC_MOD_IMPORT;
#define G_LOG_DOMAIN "gnc.import";
- The first or second form is preferred as the specific string can then be easily changed at all points in the code by just altering the definition of the macros in gnc_engine.h but you will sometimesfind the third form used to define further subdomains for more detailed debugging ofr example.
- Substitute the appropriate macro from the above list. This line should be placed in the in the C file after header files have been included.
- This line 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
Return to Logging.