Colorlog
Introduction
The ColorLog Extension provides the ColorLogHandler
for logging, and is a sub-class and drop-in replacement for the default log handler LoggingLogHandler
.
Documentation References:
API References:
Requirements
Colorlog
Applications using Cement <3.0.8 should continue to include colorlog
in their dependencies.
Installation
pip install cement[colorlog]
Configuration
This handler honors the following settings under a [log.colorlog]
section of the configuration:
Setting
Description
level
The level to display logs for. One of INFO
, WARNING
, ERROR
, FATAL
, DEBUG
. Default: INFO
file
The filesystem path of the log file. Default: None
to_console
Whether or not to log to console. Default: True
rotate
Whether or not rotate the log file. Default: False
max_bytes
Maximum file size (in bytes) until the log file is rotated (if rotation is enabled). Default: 512000
max_files
Maximum number of files to keep when rotating is enabled. Default: 4
colorize_file_log
Whether or not to colorize the log file. Default: False
colorize_console_log
Whether or not to colorize the console log. Default: True
Note that there are precautions in place to disable colorized logging if the session is not a valid TTY via sys.stdout.istty()
A sample config section might look like:
[log.colorlog]
file = /path/to/config/file
level = info
to_console = true
rotate = true
max_bytes = 512000
max_files = 4
colorize_file_log = false
colorize_console_log = true
Usage
from cement import App
class MyApp(App):
class Meta:
label = 'myapp'
extensions = ['colorlog']
log_handler = 'colorlog'
with MyApp() as app:
app.run()
app.log.debug('This is my debug message')
app.log.info('This is my info message')
app.log.warning('This is my warning message')
app.log.error('This is my error message')
app.log.fatal('This is my critical message')
from cement import App, init_defaults
META = init_defaults('log.colorlog')
META['log.colorlog']['colors'] = {
'DEBUG': 'cyan',
'INFO': 'green',
'WARNING': 'yellow',
'ERROR': 'red',
'CRITICAL': 'red,bg_white',
}
class MyApp(App):
class Meta:
label = 'myapp'
extension = ['colorlog']
log_handler = 'colorlog'
meta_defaults = META
Last updated