Table of Contents |
---|
Python
Initialisation
Class "static" member
Logger should be defined as Logger is a static member of a class. Suggested name is "logger" . An example:
Code Block |
---|
import logging class B: # class logger logger = logging.getLogger(__name__ + "." +__qualname__) |
A global variable
Logger can be defined as a global variable (i.e. out of a class scope). This is not recommended way , because names may clash, if two or more modules will use the same name of variable.
Code Block |
---|
import logging # global variable logger = logging.getLogger(__name__) class B: # class content pass |
Printing information
The recommended way to access logger from within a class is is __class__.logger
Code Block |
---|
__class__.logger.debug('This is a debug message') __class__.logger.info('This is an info message') __class__.logger.warning('This is a warning message') __class__.logger.error('This is an error message') __class__.logging.critical('This is a critical message') |
...
User can configure logging level for:
all classes of and modules of given application (via root logger)
Code Block import logging # setting ALL loggers logging.basicConfig(level=logging.ERROR)
given particular class (via via class logger )
Code Block import logging #setting particular logger logging.getLogger('fully.qualified.class.name').setLevel(logging.INFO)
module (via logger defined as global variable)
Code Block import logging #setting particular logger logging.getLogger(A.B.__qualname__'fully.qualified.module.name').setLevel(logging.INFO)
Info title Fully Qualified Name A name is fully qualified when it "is complete in the sense that it includes
(a) all names in the hierarchic sequence above the given element and
(b) the name of the given element itself."