Go to file
2017-08-23 15:19:11 -05:00
private Initial version: dump file contents or exec command. 2017-07-06 00:54:38 -05:00
.gitignore Initial version: dump file contents or exec command. 2017-07-06 00:54:38 -05:00
log_happy.nim Add -h, --version, and --help options. 2017-08-23 15:19:11 -05:00
log_happy.nim.cfg Initial version: dump file contents or exec command. 2017-07-06 00:54:38 -05:00
log_happy.nimble Add -h, --version, and --help options. 2017-08-23 15:19:11 -05:00
README.md Added README.md and versioning. 2017-07-06 00:54:46 -05:00
TODO Display labels side by side, log output. 2017-07-06 00:54:46 -05:00

log_happy

Little log viewer that watches for the presence of absence of expected phrases in log files. I found myself running programs with verbose logging output and frequently using tmux's buffer search feature to look for the presence or absence of specific text. It seemed useful to have a program that would scan the output as it was generated instead of having to go back and manually search later. That is what this tool does.

log_happy allows you to specify a log file it wil read, or a command it will execute and monitor. It also allows you to specify multiple regex's to expect either to find or not find in the output. It displays clearly which patterns where found and which were not and uses green and red text to show whether each pattern's presence matches your expectation.

Usage

log_happy online help:

Usage:
  log_happy [options]
  log_happy <filename> [options]
  log_happy [options] -- <cmd>

Options:

  -v                        Print version information and exit.
  -e<label>;<pattern>       Add something to expect to see in the log stream.
  -E<label>;<patterh>       Add something to expect not to see in the log stream.
  -d<def-file>              Read expectations from a JSON definitions file.
  -i<in-file>               Read JSON definitions from <in-file>.
  -o<out-file>              Write the log to <out-file>. Usefull for viewing
                            output later when executing commands.
  -f                        Similar to tail, do not stop when the end of file
                            is reached but wait for additional modifications
                            to the file. -f is ignored when the input is STDIN.

Expectation definitions take the format LABEL;REGEX where the LABEL is the text
label log_happy will use to describe the event, and REGEX is the regular
expression log_happy will use to identify the event.

Definitions Format

log_happy also allows you to persist your expectations in a JSON definitions file. JSON expectation definitions follow this format:

{
  "expected": {
    "<label>": "<regex>",
    "<label>": "<regex>"
  },
  "unexpected": {
    "<label>": "<regex>",
    "<label>": "<regex>"
  }
}