docs | |
---|---|
tests | |
package |
Python logging formatter that prefix multiline log message and trackebacks. Makes the logs more readable, both for tracebacks and for multiline log messages.
- Free software: BSD license
Benchmark against pythons built in formatter logging.Formatter. The benchmark is done using pytest-benchmark, and the below results is from a run on a faily new MacBook Pro, using Python 2.7.
One should note that we are using StringIO as stream output, so we should expect the results to be even closer with more production alike setup, for example writing to disc.
pip install multiline-log-formatter
Add this to dictConfig:
'formatters': {
'default': {
'()': 'multiline_formatter.formatter.MultilineMessagesFormatter',
'format': '[%(levelname)s] %(message)s'
},
},
And log messages will look like this:
[ERROR] LOGGING_MESSAGE ... (49564:MainThread)
... (49564:MainThread) : Traceback (most recent call last):
... (49564:MainThread) : File "/Users/plauri/work/opensource/python-multiline-log-formatter/tests/test_multiline_formatter.py", line 112, in test_exception
... (49564:MainThread) : raise Exception('EXCEPTION_MESSAGE')
... (49564:MainThread) : Exception: EXCEPTION_MESSAGE
And if you don't like the default, you can customize it by extending MultilineMessagesFormatter and set multiline_marker. You can also change multiline_fmt, but assure you include %(message)s in the formating string.
https://python-multiline-log-formatter.readthedocs.org/
To run the all tests run:
tox
This project sceleton is generated by ionelmc's pylibrary cookiecutter.