Convert structured JSON logs to human-readable output
Project description
jsonlog-cli
A human readable formatter for JSON logs.
It's built for use with jsonlog but will work well with any log format that uses line delimited JSON.
Usage
See jsonlog --help
for all options.
Key-value mode
Pass a file as the only argument to jsonlog
, or read from STDIN by default.
jsonlog kv docs/example.log
python docs/example.py | jsonlog kv
cat docs/example.log | jsonlog
Only show the timestamp
and message
fields:
jsonlog kv --key timestamp --key message docs/example.log
Configure the keys of multiline values you want to display (can be specified
multiple times, and defaults to the traceback
key.)
jsonlog kv --key timestamp --key message --multiline-key traceback docs/example.log
Configure the key to extract and use as the records level, controlling the
colour each line is printed in (defaults to the level
key).
jsonlog kv --level-key level --key timestamp --key message --multiline-key traceback docs/example.log
Template mode
Only show the timestamp
and message
fields:
jsonlog template --format "{timestamp} {message}" docs/example.log
Also show a multiline key when it's present:
jsonlog template --format "{timestamp} {message}" --multiline-key traceback docs/example.log
Configuration
Named "patterns" are supported as a way of collecting a set of options for
jsonlog's key-value and template modes. If ~/.config/jsonlog/config.json
exists, it will be loaded at startup. All fields should be optional.
The example configuration file below creates patterns named basic
and
comprehensive
for the key-value and template modes. The patterns will each
show the timestamp
and message
fields of incoming logs. The patterns
named comprehensive
override all fields, setting their their default values.
Creating a pattern named default
will set the default options used if no
pattern is specified. Command line options always override options from the
application's default configuration, the configuration file and the selected
pattern.
{
"keyvalues": {
"basic": {
"priority_keys": ["timestamp", "message"]
},
"comprehensive": {
"level_key": "level",
"multiline_json": false,
"multiline_keys": [],
"priority_keys": [],
"removed_keys": []
}
},
"templates": {
"basic": {
"format": "{timestamp} {message}"
},
"comprehensive": {
"level_key": "level",
"multiline_json": false,
"multiline_keys": [],
"format": "{timestamp} {message}"
}
}
}
The multiline_json
option will parse incoming data using a buffer. This is
rarely useful, but some applications (e.g. ElasticSearch) output JSON split
across multiple lines. Incoming data will be buffered until the whole buffer can
be parsed as JSON or a new line starts with {
. Incoming lines that can be
immediately parsed as JSON are not buffered (flushing the buffer first).
Debugging
The jsonlog
CLI has some flags that are useful when debugging. The following
will print internal logs as JSON to STDERR.
jsonlog --log-path=- --log-level=debug kv ...
Authors
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 jsonlog-cli-6.1.2.tar.gz
.
File metadata
- Download URL: jsonlog-cli-6.1.2.tar.gz
- Upload date:
- Size: 11.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.0.5 CPython/3.8.2 Linux/5.4.0-40-generic
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b63a2a34b1775f585545ca174227031c398b984ae8f5777511fcd61638ae7049 |
|
MD5 | 2279a486b4114fe37a9e43d7e6cf2060 |
|
BLAKE2b-256 | 2f1252870702ea36c0a6f559e2127e1daef9f0b5a26fffb15c8c7490465d1e3c |
File details
Details for the file jsonlog_cli-6.1.2-py3-none-any.whl
.
File metadata
- Download URL: jsonlog_cli-6.1.2-py3-none-any.whl
- Upload date:
- Size: 12.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.0.5 CPython/3.8.2 Linux/5.4.0-40-generic
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e1e7743ea28a4f8214783cc206d5d9a297b7607a53870fd6091330652749e8c5 |
|
MD5 | a879cd7e6f8a9aa72fc95f4f072dd30c |
|
BLAKE2b-256 | 0f8a470a7811360b5323ce51f50cb8203d63549afd2a84594951d76e5bfbd94a |