如何将Python的INFO日志输出到控制台,DEBUG日志写入文件?
Python日志配置:实现INFO日志双输出、DEBUG仅文件输出
要实现你需求的日志行为,核心是给Python的logging模块添加两个不同级别的处理器,分别控制文件写入和控制台输出:
import logging # 获取根日志记录器,并设置最低级别为DEBUG(避免提前过滤日志) logger = logging.getLogger() logger.setLevel(logging.DEBUG) # 创建文件处理器:写入所有DEBUG及以上级别的日志到文件 file_handler = logging.FileHandler('app.log') file_handler.setLevel(logging.DEBUG) # 创建控制台处理器:仅输出INFO及以上级别的日志到控制台 console_handler = logging.StreamHandler() console_handler.setLevel(logging.INFO) # 定义日志格式(可选,按需调整) formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') file_handler.setFormatter(formatter) console_handler.setFormatter(formatter) # 将处理器添加到日志记录器 logger.addHandler(file_handler) logger.addHandler(console_handler) # 测试代码 logging.info("This should show both in a file and the output") logging.debug("This should show only in a file")
关键逻辑说明:
- 根logger设置
DEBUG级别是为了确保所有级别的日志都能传递到处理器,由处理器自行决定是否输出 FileHandler级别设为DEBUG,所以debug()、info()等所有更高等级的日志都会写入文件StreamHandler级别设为INFO,所以仅info()及以上等级的日志会显示在控制台- 可根据需求修改日志格式、文件名等参数
内容的提问来源于stack exchange,提问作者Eran H.
相关产品推荐
相关产品推荐

