Logging
Ganga logging subsystem:
Ganga.Utility.logging
Logging is based on standard python module logging.py:
http://docs.python.org/lib/module-logging.html
Configuring loggers in a Ganga session
Logging level may be flexibly set for individual packages or groups of package in configuration file
$HOME/.gangarc
In the example below all Ganga packages are in INFO level, except Ganga.Lib.LSF (DEBUG) and Ganga.Utility.Logging (ERROR). The verbosity of the messages is controlled by format_string and may have one of the values: TERSE NORMAL VERBOSE DEBUG
[Logging]
Ganga = INFO
Ganga.Lib.LSF = DEBUG
Ganga.Utility.Logging = ERROR
format_string = TERSE
Using loggers in your packages
The recommended way of using loggers in Ganga 4 development:
import Ganga.Utility.logging
logger = Ganga.Utility.logging.getLogger()
This creates a logger for your Ganga 4 package and it may be placed in one or many modules in that package. Each module will get the same logger instance. For example: if this code is placed in Ganga/Lib/LFS/whatever.py then the name of the logger will be Ganga.Lib.LFS
Sometimes it is desirable to create logger for individual module (for example Ganga.Lib.LFS.whatever). You can do this like this:
import Ganga.Utility.logging
logger = Ganga.Utility.logging.getLogger(modulename=1)
You can also give any name you like to your logger but it MUST start with string 'Ganga.'
import Ganga.Utility.logging
logger = Ganga.Utility.logging.getLogger("Ganga.special_logger")
Note:
Ganga.Utility.logging just makes it easier to configure standard loggers to use within Ganga packages. If you use Ganga.Utility.logging in an executable script then the default name of your logger will not start with 'Ganga.' and therefore you will not be able to control it with the Ganga configuration file.
--
JakubMoscicki - 18-Feb-2011