【发布时间】:2020-12-09 10:11:46
【问题描述】:
我必须为整个应用程序创建一个单独的日志文件,如果应用程序中的任何模块引发任何异常,异常应该进入 except 块并且应该将错误写入日志文件。如果多个模块引发异常,则不应覆盖此日志文件,而是应将所有异常记录到一个日志文件中。
我尝试使用以下代码记录器,但它没有创建日志文件:
import logging
with open("D:\logfile\log.txt", "w") as log:
logging.basicConfig(filename=log, level=logging.DEBUG, format='%(asctime)s %(levelname)s %(name)s %(message)s')
logger=logging.getLogger(__name__)
try:
1/0
except ZeroDivisionError as err
logger.error(err)
也使用 with 子句需要缩进,我不想使用一个 with 子句下的所有模块,而是我想在程序开始时简单地创建一个日志文件,并且随着程序执行和模块引发异常,这些异常应该是写入一个日志文件。
【问题讨论】:
-
我不太明白,你不需要打开这样的文件来使用记录器模块。您可以先去掉
with部分。 -
您能澄清一下您的问题吗?代码出了什么问题——有错误吗?你期望什么行为,你会得到什么行为?另请注意,将文件 object 传递给参数文件name 应该告诉您重新阅读
logging文档。