LOG_WARNING, LOG_NOTICE, LOG_INFO, LOG_DEBUG)
from ._journal import __version__, sendv, stream_fd
from ._reader import (_Reader, NOP, APPEND, INVALIDATE,
- LOCAL_ONLY, RUNTIME_ONLY, SYSTEM_ONLY,
+ LOCAL_ONLY, RUNTIME_ONLY,
+ SYSTEM, SYSTEM_ONLY, CURRENT_USER,
_get_catalog)
from . import id128 as _id128
See systemd.journal-fields(7) for more info on typical fields
found in the journal.
"""
- def __init__(self, flags=0, path=None, converters=None):
+ def __init__(self, flags=0, path=None, files=None, converters=None):
"""Create an instance of Reader, which allows filtering and
return of journal entries.
Reader implements the context manager protocol: the journal
will be closed when exiting the block.
"""
- super(Reader, self).__init__(flags, path)
+ super(Reader, self).__init__(flags, path, files)
if _sys.version_info >= (3,3):
self.converters = _ChainMap()
if converters is not None:
"""
return self
- if _sys.version_info >= (3,):
- def __next__(self):
- """Part of iterator protocol.
- Returns self.get_next().
- """
- return self.get_next()
- else:
- def next(self):
- """Part of iterator protocol.
- Returns self.get_next().
- """
- return self.get_next()
+ def __next__(self):
+ """Part of iterator protocol.
+ Returns self.get_next() or raises StopIteration.
+ """
+ ans = self.get_next()
+ if ans:
+ return ans
+ else:
+ raise StopIteration()
+
+ if _sys.version_info < (3,):
+ next = __next__
def add_match(self, *args, **kwargs):
"""Add one or more matches to the filter journal log entries.
monotonic = monotonic.totalseconds()
monotonic = int(monotonic * 1000000)
if isinstance(bootid, _uuid.UUID):
- bootid = bootid.get_hex()
+ bootid = bootid.hex
return super(Reader, self).seek_monotonic(monotonic, bootid)
def log_level(self, level):
Equivalent to add_match(MESSAGE_ID=`messageid`).
"""
if isinstance(messageid, _uuid.UUID):
- messageid = messageid.get_hex()
+ messageid = messageid.hex
self.add_match(MESSAGE_ID=messageid)
def this_boot(self, bootid=None):
def get_catalog(mid):
if isinstance(mid, _uuid.UUID):
- mid = mid.get_hex()
+ mid = mid.hex
return _get_catalog(mid)
def _make_line(field, value):
if isinstance(value, bytes):
return field.encode('utf-8') + b'=' + value
+ elif isinstance(value, int):
+ return field + '=' + str(value)
else:
return field + '=' + value