A simple logging in JSON
Project description
plain-json-logging is a simple logging for a JSON data.
Installation:
$ pip install plain-json-logging
Usage:
from plain_json_logging import PlainJsonLogging
logging = new PlainJsonLogging()
logging.error('this is error.)
logging.warn('this is warn.')
logging.info(
'foo'
).info(
'bar'
).info(
'baz'
)
The result is found in stderr like this:
{ "timestamp": "2020-01-10T00:06:24.855159", "level": "ERROR", "message": "this is error."}
{ "timestamp": "2020-01-10T00:06:24.855159", "level": "WARN", "message": "this is warn."}
{ "timestamp": "2020-01-10T00:06:24.855159", "level": "INFO", "message": "foo"}
{ "timestamp": "2020-01-10T00:06:24.855159", "level": "INFO", "message": "bar"}
{ "timestamp": "2020-01-10T00:06:24.855159", "level": "INFO", "message": "baz"}
Options:
from plain_json_logging import PlainJsonLogging
logging = new PlainJsonLogging(
file=sys.stdout,
strftime='%Y-%m-%d %H:%M:%S.%f%z',
timedelta=+540, # 9 hours
timestampname='@timestamp',
messagename='@message',
levelname='lev',
levelinfo=0,
levelwarn=1,
levelerror=2,
)
The following parameters can modify how the logging behaves:
- file:
the writable file object. Default: sys.stderr.
- strftime:
the format. Defalut: datetime.datetime default.
- timedelta:
the timedelta. The minute is a unit. Default: 0.
- timestampname:
the name for timestamp. Default: timestamp.
- messagename:
the name for message. Default: message.
- levelname:
the name for level. Default: level.
- levelinfo:
the value for the level info. Default: INFO.
- levelwarn:
the value for the level warn. Default: WARN.
- levelerror:
the value for the level error. Default: ERROR.
API:
PlainJsonLogging has the following three methods:
info
warn
error
All the methods returns the PlainJsonLogging instance itself. Therefore, method chaining can be used for logging:
from plain_json_logging import PlainJsonLogging
logging = new PlainJsonLogging()
logging.info(
'foo'
).info(
'bar'
).info(
'baz'
)
Extra Payload:
All the methods can receives extra payload.
from plain_json_logging import PlainJsonLogging
logging = new PlainJsonLogging(
file=sys.stdout,
strftime='%Y-%m-%d %H:%M:%S.%f%z',
timedelta=+540, # 9 hours
timestampname='@timestamp',
messagename='@message',
levelname='lev',
levelinfo=0,
levelwarn=1,
levelerror=2,
)
logging.info('this is info.', { 'infoData': 'this is a extra payload for info.'})
logging.warn('this is warn.', { 'warnData': 'this is a extra payload for warn.'})
logging.error('this is error.', { 'errData': 'this is a extra payload for error.'})
The result is found in stdout like this:
{"@timestamp": "2020-01-13 07:17:06.370000", "lev": 0, "@message": "this is info.", "infoData": "this is a extra payload for info."}
{"@timestamp": "2020-01-13 07:17:06.370000", "lev": 1, "@message": "this is warn.", "warnData": "this is a extra payload for warn."}
{"@timestamp": "2020-01-13 07:17:06.370000", "lev": 2, "@message": "this is error.", "errData": "this is a extra payload for error."}
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Hashes for plain_json_logging-0.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5edaaebabcb6cafb53b5b6ff7c92c1037ca69ad49a7ead484178b39c2e07fb23 |
|
MD5 | 4a8c1e96638fd56ed112763277bea1f0 |
|
BLAKE2b-256 | 905836cb5d8d0ac90dc98559bd45baf0320445396aefcfeb30efd74f5fdbcfc7 |