Skip to content

Instantly share code, notes, and snippets.

@bcoughlan
Last active December 12, 2017 10:51
Show Gist options
  • Save bcoughlan/6e4e2de94bf2748c24528600f475f4e9 to your computer and use it in GitHub Desktop.
Save bcoughlan/6e4e2de94bf2748c24528600f475f4e9 to your computer and use it in GitHub Desktop.
Tail multiple log files with filename

The output of tailing multiple files looks like this:

==> ./tomcat/catalina.2017-11-09.log <==
09-Nov-2017 17:53:31.496 WARNING [localhost-startStop-1] com.sun.faces.mgbean.BeanManager.addBean JSF1074
09-Nov-2017 17:53:31.496 WARNING [localhost-startStop-1] com.sun.faces.mgbean.BeanManager.addBean JSF1074
09-Nov-2017 17:53:31.496 WARNING [localhost-startStop-1] com.sun.faces.mgbean.BeanManager.addBean JSF1074
==> ./tomcat/catalina.2017-11-11.log <==
11-Nov-2017 17:53:31.496 WARNING [localhost-startStop-1] com.sun.faces.mgbean.BeanManager.addBean JSF1074
11-Nov-2017 17:53:31.496 WARNING [localhost-startStop-1] com.sun.faces.mgbean.BeanManager.addBean JSF1074
11-Nov-2017 17:53:31.496 WARNING [localhost-startStop-1] com.sun.faces.mgbean.BeanManager.addBean JSF1074

This script tracks the last filename that is printed out and puts it on the same line as the log message, then prints only messages containing "WARN" or "ERROR".

find . -name "*.log" | xargs tail -f | awk '/^==>/ {a=$0} /(WARN|ERROR)/ {print a, $0}'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment