首页 > 解决方案 > 为什么我的日志消息在根日志文件中出现两次?

问题描述

我有 script.py 文件,我在其中导入 requests 模块。我注意到通过在 DEBUG 级别使用根记录器,我可以记录所有 GET 请求,这很好。

但我想要另一个日志文件来记录 INFO 级别的其他消息。所以我这样做了:

# root logger to log all GET requests
import logging
logging.basicConfig(filename= "allrequests.log", level=logging.DEBUG, 
                    format='%(asctime)s: %(levelname)s: %(message)s')

# second logger to log only INFO
formatter = logging.Formatter('%(asctime)s: %(levelname)s: %(message)s')
handler = logging.FileHandler('onlyinfo.log')
info_logger = logging.getLogger('second_logger')
info_logger.setLevel(logging.INFO)
info_logger.addHandler(handler)

现在的问题是,每当我使用:

info_logger.info('my message')

它将在第一个日志文件中记录两次,在第二个文件中记录一次。

如果它只在每个文件中记录一次信息消息,那就没问题了。

换句话说,我想将所有消息(DEBUG 和 INFO 级别的消息)记录在一个日志文件中,而仅将 INFO 消息记录在另一个日志文件中。我怎样才能做到这一点?

标签: pythonlogging

解决方案


推荐阅读