The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

jshell - an interactive shell for monitoring JSON log files

VERSION

version 0.03

SYNOPSIS

  jshell [--path /path/to/log/file]

DESCRIPTION

Opens a shell to interact with JSON-formatted log files.

OPTIONS

path

Optionally sets the default path to work with.

COMMANDS

help | h

Displays commands and their descriptions.

quit | q

Exits the program.

path | p

Sets or displays the default path.

fields | f

Selects the fields to display from each line's JSON log object. If no fields are selected, all fields will be shown.

  > fields timestamp priority message

grep | g

Adds a pattern which must be matched before a log entry is displayed.

  > grep field somepattern

Despite the name, patterns are perl regexes and matched against the string value of the field. Embedded modifiers are supported, so a case insensitive search is accomplished thusly:

  > grep field (?i)somepattern

grepv | v

Adds a pattern which excludes entries whose field value matches.

  > grepv field logswedonotwanttosee

info | i

Displays the current configuration of displayed fields and patterns.

reset | r

Interactively resets fields and patterns.

cat | c

Displays each entry in a file, showing only those fields selected. If no fields are selected, all fields are shown. If no path is specified, the default path will be used if set.

  > cat /path/to/json.log

tail | t

Tails a log file, displaying new entries as they are appended to the file. Use control-c to stop output. If no path is specified, the default path will be used if set.

  > tail /path/to/json.log

AUTHOR

Jeff Ober <sysread@fastmail.fm>

COPYRIGHT AND LICENSE

This software is copyright (c) 2018 by Jeff Ober.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.