Skip to main content

A module that reads systemd journal similar to journalctl

Project description

A python module that reads systemd journald similar to journalctl

Requirements

  • python2 >= 2.6 or python3

  • systemd >= 194

Installation

python setup.py install

License

GNU Lesser General Public License v2.1

Usage Examples

>>> import pyjournalctl
>>> journal = pyjournalctl.Journalctl()
>>> journal.add_matches({"PRIORITY": "5", "_PID": "1"})
>>> entry = journal.get_next()
>>> "PRIORITY: %(PRIORITY)s" % entry
'PRIORITY: 5'
>>> "_PID: %(_PID)s" % entry
'_PID: 1'
>>> "MESSAGE: %(MESSAGE)s" % entry # doctest: +ELLIPSIS
'MESSAGE: ...'
>>>
>>> journal.flush_matches()
>>> journal.seek(100) # 100 entries from start
>>> journal.add_match("_TRANSPORT", "kernel")
>>> journal.add_disjunction() # OR next matches
>>> journal.add_match("PRIORITY", "5")
>>> journal.add_match("_UID", "0")
>>> entry = journal.get_next(2) # Get second match
>>> entry.get("_TRANSPORT") == "kernel" or (
...     entry.get('PRIORITY') == "5" and entry.get("_UID") == "0")
True
>>>
>>> cursor = journal.get_cursor() # Cursor is unique reference
>>> cursor # doctest: +ELLIPSIS
'...'
>>> journal.flush_matches()
>>> journal.seek(0,2) # End of journal
>>> entry2 = journal.get_previous()
>>> journal.get_cursor() == cursor
False
>>> entry2 == entry
False
>>> journal.seek_cursor(cursor) # Seek to unique reference
>>> journal.get_next() == entry
True
>>> journal.get_cursor() == cursor
True
>>> journal.flush_matches()
>>> journal.seek(-1000,2) # Last 1000 entries
>>> priorities = set(range(2,6))
>>> for priority in priorities:
...     # Items of the same field name are automatically 'or'ed
...     journal.add_match("PRIORITY=%i" % priority) # Items of same key are
>>> priorities >= set(int(entry['PRIORITY']) for entry in journal)
True

Project details


Download files

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

Source Distribution

pyjournalctl-0.1.tar.gz (4.7 kB view hashes)

Uploaded Source

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