【发布时间】:2015-01-27 21:16:39
【问题描述】:
我在 Python 中创建的日志旨在临时存储为文件,然后这些文件将被处理到日志数据库中。它们采用管道描述的格式来指示如何处理日志,但是 logging.exception() 添加了太多的字段和太多的换行符,从而打破了我的标准。
import logging
logging.basicConfig(filename='output.txt',
format='%(asctime)s|%(levelname)s|%(message)s|',
datefmt='%m/%d/%Y %I:%M:%S %p',
level=logging.DEBUG)
logging.info('Sample message')
try:
x = 1 / 0
except ZeroDivisionError as e:
logging.exception('ZeroDivisionError: {0}'.format(e))
# output.txt
01/27/2015 02:09:01 PM|INFO|Sample message|
01/27/2015 02:09:01 PM|ERROR|ZeroDivisionError: integer division or modulo by zero|
Traceback (most recent call last):
File "C:\Users\matr06586\Desktop\ETLstage\Python\blahblah.py", line 90, in <module>
x = 1 / 0
ZeroDivisionError: integer division or modulo by zero
如何最好地处理或格式化带有空格和换行符的回溯?这些消息是 logging.exception() 的重要组成部分,但是当我尝试记录实例时绕过该函数感觉很奇怪的例外。如何记录我的回溯并格式化它们?是否应该忽略回溯?
感谢您的宝贵时间!
【问题讨论】:
-
你是在问你应该做什么,或者怎么做?您希望如何格式化日志文件中的错误消息取决于您。 你希望他们看起来像什么?
-
感谢您解决这个问题。理想情况下,我可以将回溯作为另一个管道分隔属性包含在与记录的其余消息相同的行上。