Simple log analysis library
Project description
- 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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.