Skip to main content

A Flexible DSL For Processing Logs

Project description

routelog is a flexible execution-based log processing program and Domain Specific Language. routelog takes a rules file in the following format:

/pattern/    command $1 $2

And operates on one or more log files, executing command $1 $2 for all lines matching the regular expression /pattern/ substituting the first and second items in the log line for $1 and $2 respectively. A rules file with the following directive:

/ERROR/      echo "$*" | mail -s "Error executing ${3%:} on $2 at $1" error@example.com

Would process a log entry like:

2012-12-07T12:06:11-05:00 server1 program_name: ERROR foo

and send an email to error@example.com with the subject:

Error executing program_name on server1 at 2012-12-07T12:06:11-05:00'

and the body:

2012-12-07T12:06:11-05:00 server1 program_name: ERROR foo

Rules files are processed by the routelog program:

routelog mail-errors.rules /var/log/*.log

The routelog program acts as a filter, passing all log lines to stdout, which is useful for doing additional processing in a single pipeline:

routelog mail-errors.rules /var/log/*.log | bzip2 > todays-logs.`date +%s`.bz2

For more on rules files, see man 5 routelog, for more on routelog see man 1 routelog.

Installing

The routelog project lives on github, and is available via pip.

Installing v0.1 From Pip

sudo pip install routelog==0.1

Installing v0.1 From Source

wget https://github.com/axialmarket/routelog/archive/routelog-0.1.tar.gz | tar vzxf -
cd routelog-0.1
sudo python setup.py install

Usage

routelog [-h|--help] [-c|--comments] [-n|--no-output] rules_file [ log_file [...]]

Optional Arguments

-h, –help

Print an extended usage to stdout and exit.

-c, –comments

Treat comments in log lines (anything following a ‘ #’) as arguments, rather than ignoring them.

-n, –no-output

Suppress the (default) behavior of printing each log line to stdout.

More documentation is available via for the routelog program (man 1 routelog) and routelog rules file formats (man 5 routelog) after install.

License

routelog is made available for use under a 3-clause BSD license (see: LICENSE.txt in the package).

Authors

Matthew Story (matt.story@axial.net)

Project details


Release history Release notifications | RSS feed

This version

0.1

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

routelog-0.1.tar.gz (7.8 kB view details)

Uploaded Source

File details

Details for the file routelog-0.1.tar.gz.

File metadata

  • Download URL: routelog-0.1.tar.gz
  • Upload date:
  • Size: 7.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for routelog-0.1.tar.gz
Algorithm Hash digest
SHA256 9987fe2cd9778f5df2e4b76fc8ce04937a3ceefb500aaeb5086475c68131aa41
MD5 daa96ab884e79d7ffd3adbd148ba96ea
BLAKE2b-256 0a84f7a74de966697d7e7f997fe0e1ee58b94af529773b798206dd549539657a

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page