Python logging module outputs logs as JSON.
Project description
json-pyformatter
Python logging outputs as JSON.
This JsonFormatter is written in Pure Python.
Installation
pip install json-pyformatter
Usage
import logging
from json_pyformmatter import JsonFormatter
logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)
handler = logging.StreamHandler()
fields = ('levelname', 'filename', 'message')
handler.setFormatter(JsonFormatter(fields=fields))
logger.addHandler(hander)
logger.info('hello')
default fields is ('asctime', 'levelname', 'message')
Other supported fields are:
field name | description |
---|---|
name | Name of the logger (logging channel) |
levelno | Numeric logging level for the message (DEBUG, INFO, WARNING, ERROR, CRITICAL) |
levelname | Text logging level for the message ("DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL") |
pathname | Full pathname of the source file where the logging call was issued |
filename | Filename portion of pathname |
module | Module (name portion of filename) |
lineno | Source line number where the logging call was issued |
funcName | Function name |
created | Time when the LogRecord was created (time.time()return value) |
asctime | Textual time when the LogRecord was created |
msecs | Millisecond portion of the creation time |
relativeCreated | Time in milliseconds when the LogRecord was created, relative to the time the logging module was loaded (typically at application startup time) |
thread | Thread ID |
threadName | Thread name |
process | Process ID |
message | The result of record.getMessage(), computed just as the record is emitted |
In details, please refere to logrecord-attributes
Output
{"levelname": "INFO", "filename": "test_formatter.py", "message": "hello"}
If specify indent option as 2, the result is as follows:
{
"levelname": "INFO",
"filename": "test_formatter.py",
"message": "hello"
}
When exc_info is True, the result includes traceback infomation as follows:
{
'asctime': '2019-12-01 13:58:34',
'levelname': 'ERROR',
'message': 'error occurred !!',
'traceback': [
'Traceback (most rec...ll last):',
'File "/example/test..._exc_info',
'raise TypeError(message)',
'TypeError: error occurred !!'
]
}
Logging message type is dict:
{
'asctime': '2019-12-01 23:34:32',
'levelname': 'INFO',
'message': {
'id': '001',
'msg': 'This is test.',
'name': 'test'
}
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
json-pyformatter-0.1.0.tar.gz
(4.6 kB
view hashes)
Built Distribution
Close
Hashes for json_pyformatter-0.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bebaeb4780815f7897bc9153ee8bee73788d01981530572c2c3418e296622e95 |
|
MD5 | c3746dea082ff43cf387f5fbb0ee63d2 |
|
BLAKE2b-256 | a5234a8c36dd23160d6d9aba1f6b2d52a8d6d149215ff4dde764304de2a26177 |