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
Built Distribution
File details
Details for the file json-pyformatter-0.1.0.tar.gz
.
File metadata
- Download URL: json-pyformatter-0.1.0.tar.gz
- Upload date:
- Size: 4.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/0.12.17 CPython/3.8.0 Linux/5.0.0-1023-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 006573f9ec788a7e90ed1b1e66b9dd19d55719d76fe7abb28b46ab6889e266f2 |
|
MD5 | 3a1fd869935e5e8954f19568a3f3da90 |
|
BLAKE2b-256 | df5964fe142209dde4b4dffaee37d9b0435d8bdaa4833a627f3be1150acc717a |
File details
Details for the file json_pyformatter-0.1.0-py3-none-any.whl
.
File metadata
- Download URL: json_pyformatter-0.1.0-py3-none-any.whl
- Upload date:
- Size: 4.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/0.12.17 CPython/3.8.0 Linux/5.0.0-1023-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bebaeb4780815f7897bc9153ee8bee73788d01981530572c2c3418e296622e95 |
|
MD5 | c3746dea082ff43cf387f5fbb0ee63d2 |
|
BLAKE2b-256 | a5234a8c36dd23160d6d9aba1f6b2d52a8d6d149215ff4dde764304de2a26177 |