skip to navigation
skip to content

Not Logged In

loggrok 0.2.1

Simple log analysis library

I wrote loggrok a while back as I needed a simple library for analyzing logs. I am not actively developing loggrok, but please let me know if you find any bugs etc.

Features include:

  • Simple callback system (loggrok.actions)
  • Seemless iteration over multiple rollover-index based log files - smartly joins broken lines (RollingIndexLogStream)
  • Custom regex-based header and message body matching.

Example usage:

>>> from loggrok.actions import Action
>>> action = Action()
>>> def printError(entry):
...     print 'err!', str(entry)[:-1]
...
>>> action.addLevelCallback('ERROR', printError)
>>> def printWarning(entry):
...     print 'warning!', str(entry)[:-1]
...
>>> action.addLevelCallback('WARN', printWarning)
>>> from loggrok.log import LogStream
>>> stream = LogStream(fname)
>>> stream.action = action
>>> for entry in stream:
...     continue
...
err! blah blah
warning! blah blah
err! blah blah

You can also write your own regexes for matching custom headers:

>>> from loggrok.parse import HeaderParser, MessageParser
>>> header_patt = r'^([a-zA-Z]+) ([a-zA-Z]+) <(\d+)> '
# Entry attributes correspond to groups in regex pattern
>>> header_attrs = ('foo', 'bar', 'baz')
>>> header_parser = HeaderParser(header_patt, header_attrs)
>>> message_patterns = (...) # regexs for message body - after header
>>> message_attrs = (...) # tuple of attribute tuples corresponding to patters
>>> messageParser = MessageParser(message_patterns, message_attrs)
...
>>> stream.messageParser = messageParser

See doctest in tests directory for working examples.

To run unit tests:

python runtests.py

N.B. - loggrok will emit warning related to "broken" CurriedCallable class, though it should not cause issues.

File Type Py Version Size # downloads
loggrok-0.2.1-py2.4.egg (md5) Python Egg 2.4 12KB 285
loggrok-0.2.1-py2.5.egg (md5) Python Egg 2.5 12KB 306
loggrok-0.2.1.tar.gz (md5) Source 10KB 149