我已经使用Python的SysLogHandler配置了我的Python应用程序以记录到syslog,并且一切都正常。除了多行处理。并不是我非常需要发出多行日志记录(我确实需要一点),而是我需要能够读取Python的异常信息。我正在使用带有rsyslog 4.2.0的Ubuntu。以下是我得到的:
Mar 28 20:11:59 telemachos root: ERROR 'EXCEPTION'#012Traceback (most recent call last):#012 File "./test.py", line 22, in <module>#012 foo()#012 File "./test.py", line 13, in foo#012 bar()#012 File "./test.py", line 16, in bar#012 bla()#012 File "./test.py", line 19, in bla#012 raise Exception("EXCEPTION!")#012Exception: EXCEPTION!
如果您需要测试代码,请参考以下内容:
import logging
from logging.handlers import SysLogHandler
logger = logging.getLogger()
logger.setLevel(logging.INFO)
syslog = SysLogHandler(address='/dev/log', facility='local0')
formatter = logging.Formatter('%(name)s: %(levelname)s %(message)r')
syslog.setFormatter(formatter)
logger.addHandler(syslog)
def foo():
bar()
def bar():
bla()
def bla():
raise Exception("EXCEPTION!")
try:
foo()
except:
logger.exception("EXCEPTION")
tail -f /var/log/syslog | perl -pe 's/#012/\n\t/g;'
。 - user9645