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',
timezone='America/Chicago',
timedelta=+540, # 9 hours
timestampname='@timestamp',
messagename='@message',
levelname='lev',
levelinfo=0,
levelwarn=1,
levelerror=2,
constextra={ name: 'Example' }
)
The following parameters can modify how the logging behaves:
- file:
the writable file object. Default: sys.stderr.
- strftime:
the format. Defalut: datetime.datetime default.
- timezone:
the TZ database name. Default: UTC.
- 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.
- constextra:
the default additional items for each log (the value must be a dictionary object): Default: None.
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',
timezone='Asia/Tokyo',
timedelta=0,
timestampname='@timestamp',
messagename='@message',
levelname='lev',
levelinfo=0,
levelwarn=1,
levelerror=2,
constextra={ name: 'Example' },
)
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+0900", "lev": 0, "@message": "this is info.", "name": "Example", "infoData": "this is a extra payload for info."}
{"@timestamp": "2020-01-13 07:17:06.370000+0900", "lev": 1, "@message": "this is warn.", "name": "Example", "warnData": "this is a extra payload for warn."}
{"@timestamp": "2020-01-13 07:17:06.370000+0900", "lev": 2, "@message": "this is error.", "name": "Example", "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 Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file plain_json_logging-0.4.0-py3-none-any.whl.
File metadata
- Download URL: plain_json_logging-0.4.0-py3-none-any.whl
- Upload date:
- Size: 3.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/3.8.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9f048edbf848a731ea12cd77d29c64d38cafe7f60eaf1f6428bacbd3ebc35649
|
|
| MD5 |
f5718ae341cbaed738d2e6e4ba3c3b3e
|
|
| BLAKE2b-256 |
c601feafc85e9413c71fcaf0eb2bf3bd1a6279af6e8187abff2190b6fd7e4b82
|
File details
Details for the file plain_json_logging-0.4.0-py2-none-any.whl.
File metadata
- Download URL: plain_json_logging-0.4.0-py2-none-any.whl
- Upload date:
- Size: 3.9 kB
- Tags: Python 2
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/3.8.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
70f551c20966dd13253707b122c8b9534a93829b9ba9cc1fa3de60734b9d40aa
|
|
| MD5 |
7e0879ed9dc548f4e2509b55efff24dc
|
|
| BLAKE2b-256 |
255fce540a78d75807252283aa16ccd11eaea2e19852cb14725ed5f92d8f607d
|