【发布时间】:2022-01-15 21:30:15
【问题描述】:
我有一个可以工作的代码,但做了一些我不理解的事情。
此代码使用logging python 模块。问题是当我运行这个脚本时,控制台上总是有一行我不想要的(除了正常的流日志之外)(这篇文章底部的 STDOUT 中的第二行)。
我不明白为什么这条线存在以及如何解决这个问题。
我认为这个问题是由于logging.basicConfig(level=logging.INFO) 的使用引起的,但我需要使用它,因为如果我不使用它logger.info('This is a INFO-01') 就不能只使用级别警告等...我尝试了几件事但这只是产生了错误,并且在 Internet 上找不到答案。
import logging
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
c_handler = logging.StreamHandler()
f_handler = logging.FileHandler('file07.log')
c_handler.setLevel(logging.INFO)
f_handler.setLevel(logging.INFO)
c_format = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
f_format = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
c_handler.setFormatter(c_format)
f_handler.setFormatter(f_format)
logger.addHandler(c_handler)
logger.addHandler(f_handler)
logger.info('This is a INFO-01')
标准输出:
2021-12-11 17:54:30,203 - INFO - This is a INFO-01
INFO:__main__:This is a INFO-01
如果有人可以帮助我,我将非常感激。 亲切的
【问题讨论】:
-
您正在使用
basicConfig()添加一个处理程序,然后您手动添加更多处理程序。难怪你不止一次得到线路。
标签: python logging python-logging