Skip to content

danielannan17/json-log-viewer

 
 

Repository files navigation

json-log-viewer

npm version

Powerful terminal based viewer for JSON logs using ncurses.

screenshot

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:

  • arrows and page up/down to move
  • / to search
  • n to search again
  • s to sort
  • f to filter
  • l to filter by level
  • g to go to line
  • 0 to go to first line
  • $ to go to last line
  • q to quit

Install

npm install --global json-log-viewer

Usage

jv application.log.2017-01-01 --sort -timestamp

Configuration

The default expected log format include fields timestamp, level and message. If your log file doesn't include these fields, you can override the default configuration by creating a .json-log-viewer file in either your HOME path or current working directory. It's worth noting that if you create a config.json file in your current working directory, it will take precedence over any file located in your HOME path."

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:

transform

Screenshots

Details view

screenshot

Filters

screenshot

Log level selection

screenshot

License

MIT

About

Powerful terminal based viewer for JSON logs using ncurses.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%