documentation для emit()
функции Python 2.x SysLogHandler говорит:Почему не Python войти в системный журнал исключений
The record is formatted, and then sent to the syslog server. If exception information is present, it is not sent to the server.
... почему? source не tell меня много. Я что-то пропустил?
Однако, когда я пытаюсь следующий код:
import logging
from logging.handlers import SysLogHandler
rootlogger = logging.getLogger()
rootlogger.setLevel(logging.DEBUG)
syslogh = SysLogHandler('/dev/log')
rootlogger.addHandler(syslogh)
# to see what's happening too
consoleh = logging.StreamHandler()
rootlogger.addHandler(consoleh)
# this appears in the log
rootlogger.info('foobar')
try:
a = 42
a/0
except ZeroDivisionError as e:
rootlogger.exception('myException!: {}'.format(e))
Он написать следующее системного журнал:
May 7 16:25:59 localhost foobar
May 7 16:25:54 localhost myException!: integer division or modulo by zero#012Traceback (most recent call last):#012 File "syslogonly.py", line 16, in #012 a/0#012ZeroDivisionError: integer division or modulo by zero
Я использую Rsyslog 8.4.2 на хриплой системе Debian.
Кроме того, я знаю, что есть проблемы с многострочными, но это связано?
Хорошая точка. Однако я до сих пор не знаю, почему sysloghandler исключает ошибки журнала. Может быть, это ошибка в документах? – lorenzog