Powerful terminal based viewer for JSON logs using ncurses.
json-log-viewer is a feature intensive viewer and analyze tool for JSON logs created by libraries like https://github.com/winstonjs/winston.
Features:
- completely operated by hotkeys
- powerful command line arguments
- sort by timestamp, level or message
- filter by any field or metadata
- search
Hotkeys:
- arrowsand- page up/downto move
- /to search
- nto search again
- sto sort
- fto filter
- lto filter by level
- gto go to line
- 0to go to first line
- $to go to last line
- qto quit
npm install --global json-log-viewerjv application.log.2017-01-01 --sort -timestampThe default expected log format include fields timestamp, level and message. If the log file you're trying to parse doesn't include those fields, you can create a config file on your HOME path called .json-log-viewer.
For example, if your log lines look like this:
{
  "message":
    "Matched route \"**_heartbeat_check\" (parameters: \"_controller\": \"**\\Controller\\**Controller::heartbeatCheckAction\", \"_route\": \"**_heartbeat_check\")",
  "context": [],
  "level": 200,
  "level_name": "INFO",
  "channel": "request",
  "datetime": {
    "date": "2017-12-06 09:23:42.253060",
    "timezone_type": 3,
    "timezone": "Europe/Berlin"
  },
  "extra": []
}You can create a mapping configuration like this:
[transform]
level=level_name
timestamp=datetime.date
message=message
extra=$This way the messages will properly be displayed. The $ has a special meaning: it tells the the old object should be included on the extra key on the resulting JSON. The result will look like this:
Details view
Filters
Log level selection




