Logging
Logging
- class DIRAC.FrameworkSystem.private.standardLogging.Logging.Logging(father: Logging | None = None, name: str = '')
Bases:
object
Logging is a wrapper of the logger object from the standard “logging” library which integrates some DIRAC concepts.
It aimed at seamlessly replacing the previous gLogger implementation and thus provides the same interface.
Logging is generally used to create log records, that are then sent to pre-determined backends.
Each Logging embeds a logger of “logging”. Logging can instanciate “children” logging objects and all Logging objects inherit from the configuration of LoggingRoot, the first Logging object to be instanciated.
- class LocalSubLogger(logger: Logging, extra: dict)
Bases:
object
This is inspired from the standard LoggingAdapter. The idea is to provide an interface which looks like a Logger, but does not implement all the features. You can basically just create it, and log messages. You cannot create subLogger from it
This is to be used for very short lived sub logger. It allows to give context information (like a jobID) without creating a new logging object, which ends up eating all the memory (see https://github.com/DIRACGrid/DIRAC/issues/5280)
- __init__(logger: Logging, extra: dict)
- Parameters:
logger –
Logging
object on which to be basedextra – dictionary of extra information to be passed
- __init__(father: Logging | None = None, name: str = '')
Initialization of the Logging object. By default, ‘name’ is empty, because getChild only accepts string and the first empty string corresponds to the root logger. Example: >>> logging.getLogger(‘’) == logging.getLogger(‘root’) # root logger >>> logging.getLogger(‘root’).getChild(‘log’) == logging.getLogger(‘log’) # log child of root
- exception(sMsg: str = '', sVarMsg: str = '', lException: bool = False, lExcInfo: bool = False) bool
Exception level
- getDisplayOptions() dict[str, bool]
- Returns:
the dictionary of the display options and their values. Must not be redefined
- getLocalSubLogger(subName: str) LocalSubLogger
Create a subLogger which is meant to have very short lifetime, (e.g. when you want to add the jobID in the name)
Warning
This is a light version of a logger, read the documentation of
LocalSubLogger
carefully- Parameters:
subName (str) – name of the child Logging
- getSubLogger(subName: str) Logging
Create a new Logging object, child of this Logging, if it does not exists.
Warning
For very short lived sub logger, consider
getLocalSubLogger()
instead- Parameters:
subName (str) – name of the child Logging
- registerBackend(desiredBackend: str, backendOptions: dict | None = None, backendFilters: dict | None = None) bool
Attach a backend to the Logging object. Convert backend name to backend class name to a Backend object and add it to the Logging object
- Parameters:
desiredBackend – a name attaching to a backend type. List of possible values: [‘stdout’, ‘stderr’, ‘file’]
backendOptions – dictionary of different backend options. Example: FileName=’/tmp/log.txt’
backendFilters – dictionary of different backend filters. Example: {‘ModuleFilter’: {‘dirac’: ‘ERROR’}}
- Returns:
Success or failure of registration
- Return type:
- setLevel(levelName: str) bool
Check if the level name exists and set it.
- Parameters:
levelName – string representing the level to give to the logger
- Returns:
boolean representing if the setting is done or not
- showContexts(yesno: bool = True)
Depending on the value, display or not the context of the message. Make sure to enable the headers: showHeaders(True) before
- Parameters:
yesno (bool) – determine the log record format
- showHeaders(yesno: bool = True)
Depending on the value, display or not the prefix of the message.
- Parameters:
yesno (bool) – determine the log record format
- showStack() bool
Display a debug message without any content.
- Returns:
boolean, True if the message is sent, else False
- showThreadIDs(yesno: bool = True)
Depending on the value, display or not the thread ID. Make sure to enable the headers: showHeaders(True) before
- Parameters:
yesno (bool) – determe the log record format
- showTimeStamps(yesno: bool = True)
Depending on the value, display or not the timestamp of the message. Make sure to enable the headers: showHeaders(True) before
- Parameters:
yesno (bool) – determine the log record format