【发布时间】:2026-01-11 14:05:01
【问题描述】:
我的日志记录有以下代码:
logging.basicConfig(
handlers=[
logging.FileHandler("log.txt", "w"),
logging.StreamHandler()
],
format='%(levelname)s - %(asctime)s - %(message)s',
datefmt='%H:%M:%S',
level=logging.DEBUG)
我想为我的 2 个处理程序设置不同的级别。 但我真的很想保持简单,我想用 basicConfig 做到这一点。
有什么办法可以做到吗?
我试过了,但失败了:
logging.basicConfig(
handlers=[
logging.FileHandler("log.txt", "w", level=logging.DEBUG),
logging.StreamHandler(level=logging.DEBUG)
],
format='%(levelname)s - %(asctime)s - %(message)s',
datefmt='%H:%M:%S')
TypeError: init() 得到了一个意外的关键字参数 'level'
【问题讨论】:
-
是的,您可以将
level参数传递给两个处理程序。 -
酷,这就是我的观点。我没有成功
-
发生了什么?显示您尝试过的代码和遇到的错误。
-
我更新了我的问题
-
您必须先创建处理程序,然后在其上调用
.setLevel(level)。使用logging.config.dictConfig()可以让您直接在处理程序的定义中设置级别(恕我直言,实际上更具可读性)。