Prism – Colourise log files (with ANSI characters codes)
A command line log colouriser utility.
From Python package index (Pypi):
(sudo) pip install logprism
or from Github:
(sudo) pip install watchdog # optional
git clone https://github.com/peterhil/prism.git
(sudo) python setyp.py install
All dependencies can be installed with pip, usually by:
pip install some-package
Required (automatically handled by pip):
- ordereddict (if using Python 2.6)
Optional (install manually with pip):
- watchdog (watch files and directories with the -w option. Recommended for Python 2.x only – doesn’t work with Python 3)
- pytest (test framework)
- tox (continuous integration)
tail -f /opt/local/var/log/couchdb/couch.log | prism
Grep some logs for messages with levels:
prism -g /var/log/*.log
Combine with grep command to find just specific levels:
grep -iE ‘(warn|error)’ /var/log/*.log | prism -g
Match multiple log levels per line:
prism -m /var/log/apache2/vhost*log
prism -m <(echo “Dribble me a debug or info lest I notice no create nor alter nor drop of your critical tables.”)
Watch for a whole directory of logs for changes (and new files):
prism -m -w /opt/local/var/log/nginx/
Some programs output normally to stderr, grab that output for prism:
python run.py 2>&1 | prism
Run unit tests:
python setup.py test
Run continuous integration with tox (from an activated virtualenv, use tox -r to recreate CI envs):
- Show some tail lines when using -w: Make a line cache (count total lines with wc -l) from the end of the file using some blocksize.
- Can be done with readlines() first. Then seek and read blocksize bytes from len(file)-blocksize and update cache.
- Later enable ncurses scrolling for earlier lines?
- Show n lines by default (a screenful / filecount?)
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.