diff options
author | Oleksii Shevchuk <alxchk@gmail.com> | 2016-10-27 21:02:14 +0300 |
---|---|---|
committer | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2016-10-27 14:02:14 -0400 |
commit | 0af056c35f4ea9f008f81d85f2542b16e7b4fadf (patch) | |
tree | fe4c250d1af5615144bfc3b36bea5748333b2167 | |
parent | 0cae964314226d2d3e9a0a72d9d250cfb0217609 (diff) | |
download | python-systemd-0af056c35f4ea9f008f81d85f2542b16e7b4fadf.tar.gz |
Include all fields from record (#30)
This approach allows to use LoggerAdapter+extra or .info(.., extra={})
to transparently add extra fields to journal.
-rw-r--r-- | systemd/journal.py | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/systemd/journal.py b/systemd/journal.py index a43b837..e9f714e 100644 --- a/systemd/journal.py +++ b/systemd/journal.py @@ -559,15 +559,30 @@ class JournalHandler(_logging.Handler): msg = self.format(record) pri = self.mapPriority(record.levelno) mid = getattr(record, 'MESSAGE_ID', None) + extras = { k:str(v) for k,v in self._extra.iteritems() } + extras.update({ + k:str(v) for k,v in record.__dict__.iteritems() + }) + + if record.exc_text: + extras['EXCEPTION_TEXT'] = record.exc_text + + if record.exc_info: + extras['EXCEPTION_INFO'] = record.exc_info + + if record.args: + extras['CODE_ARGS'] = str(record.args) + send(msg, MESSAGE_ID=mid, PRIORITY=format(pri), LOGGER=record.name, THREAD_NAME=record.threadName, + PROCESS_NAME=record.processName, CODE_FILE=record.pathname, CODE_LINE=record.lineno, CODE_FUNC=record.funcName, - **self._extra) + **extras) except Exception: self.handleError(record) |