How to configure the Logging for the titan Flow Engine
The titan FlowEngine utilizes Python's builtin
It can be configured via a configuration file, which is located in
The following will provide a brief overview, a more detailed explanation can be found in the Python Documentation:
The loggers section contains two Loggers, that can be configured separately:
The "titanfe" logger will capture any titanfe internal log messages, whereas the "titanfe.bricks" logger will capture any logging from within a brick.
For each logger you can set a log level and one or more specific handlers:
loggers: titanfe: level: INFO handlers: [console]
The above would capture all logging on info level and above (warning) and
output it to the console.
Furthermore, there is a global "root"-Logger, that captures LogRecords from
all other loggers unless they are explicitly set to
If enabled the root logger allows you to capture logs from Python internals
like the debug output of the
To enable the root logger set:
root: level: DEBUG handlers: - console
The handlers section allows specifying different handlers.
Note: An instance of each configured handler gets created on initialization of
the Python logging module, regardless of if it gets assigned to any logger or not.
The handlers section allows to specify different handlers. Note: An instance for each configured handler will be created, regardless if it is assigned to any logger or not.
A handler could for example output to the console, write to a file or stream
the log records to a remote system. See logging.handlers for the builtin options.
Each handler has the following options:
handlers: console: class: logging.StreamHandler # the python class to instantiate level: INFO # minimum log level for this handler formatter: default # a formatter filters: [hostname] # additional filters for the formatter to use stream: ext://sys.stdout # parameters for the class to instantiate, # will be passed in as keywords
A formatter is used to specify how the log message is to be build up.
Formatter: default: format: "%(asctime)s %(hostname)s (%(process)5d|%(thread)-5d) %(name)s %(levelname)-8s %(message)s"
above renders to:
``bash2019-09-25 14:06:29,961 COMPUTER (15032|3448 ) titanfe.bricks.generator INFO Finished generating`
see Logrecord Attributes for the available options.