Difference between revisions of "Logging"
(move "best practices" to the API docs.) |
m (formatting of keywords) |
||
Line 3: | Line 3: | ||
= Logging in GnuCash = | = Logging in GnuCash = | ||
− | GnuCash leverages glib logging, with some historical and convenience macros. As of Winter 2007, GnuCash has an ad-hoc layer on top of glib's "gmessage.h" logging inspired by log4j. In short, | + | GnuCash leverages glib logging, with some historical and convenience macros. As of Winter 2007, GnuCash has an ad-hoc layer on top of glib's "gmessage.h" logging inspired by log4j. In short, '''messages''' are logged in a given '''log-domain''' and at a specific '''level'''. The log-domain is a "."-separated path, and a table of log levels is configured. Between the two, a tree of log-level is established. Log messages are checked against the tree before being emitted. |
= log.conf = | = log.conf = | ||
Line 9: | Line 9: | ||
The special file <tt>~/.gnucash/log.conf</tt> is checked for at gnucash start up; if present, its contents will configure the logging subsystem. The primary purpose of the configuration file it to setup a specific set of log-levels, though it's also useful for changing the default logging location from <tt>/tmp/gnucash.trace</tt> to stdout, stderr or another file. | The special file <tt>~/.gnucash/log.conf</tt> is checked for at gnucash start up; if present, its contents will configure the logging subsystem. The primary purpose of the configuration file it to setup a specific set of log-levels, though it's also useful for changing the default logging location from <tt>/tmp/gnucash.trace</tt> to stdout, stderr or another file. | ||
− | The specific set of log paths that exist are going to be a function of the code at any given point, but some basic patterns will stabilize. As of Feb 13 2007, [[User:Jsled]] is using the following to generally raise the log level of the app, but also to get debugging detail about file-backend and | + | The specific set of log paths that exist are going to be a function of the code at any given point, but some basic patterns will stabilize. As of Feb 13 2007, [[User:Jsled]] is using the following to generally raise the log level of the app, but also to get debugging detail about file-backend and U I code changes related to scheduled transactions: |
[levels] | [levels] |
Revision as of 19:41, 27 June 2007
See the Logging API documentation, as well.
Logging in GnuCash
GnuCash leverages glib logging, with some historical and convenience macros. As of Winter 2007, GnuCash has an ad-hoc layer on top of glib's "gmessage.h" logging inspired by log4j. In short, messages are logged in a given log-domain and at a specific level. The log-domain is a "."-separated path, and a table of log levels is configured. Between the two, a tree of log-level is established. Log messages are checked against the tree before being emitted.
log.conf
The special file ~/.gnucash/log.conf is checked for at gnucash start up; if present, its contents will configure the logging subsystem. The primary purpose of the configuration file it to setup a specific set of log-levels, though it's also useful for changing the default logging location from /tmp/gnucash.trace to stdout, stderr or another file.
The specific set of log paths that exist are going to be a function of the code at any given point, but some basic patterns will stabilize. As of Feb 13 2007, User:Jsled is using the following to generally raise the log level of the app, but also to get debugging detail about file-backend and U I code changes related to scheduled transactions:
[levels] gnc=message gnc.bin=info gnc.gui=info gnc.backend.file=info gnc.engine.sx=debug gnc.app-util.sx=debug gnc.backend.file.sx=debug gnc.gui.sx=debug gnc.gui.frequency=debug GLib=error [output] to=stderr
Note that these settings are probably not suitable for your purpose, but serve as an example of what's possible.