python logging包同时往文件和屏幕输出日志的写法

本文探讨了Python中通过logging模块配置日志记录的两种常见方法,第一种详细展示了如何分别设置FileHandler和StreamHandler,而第二种则强调了基本配置可能对StreamHandler的影响。

第一种:

import logging
logger = logging.getLogger(__name__)
logger.setLevel(level = logging.DEBUG)
fh = logging.FileHandler('日志文件完整路径')
fh.setLevel(logging.DEBUG)
file_formatter = logging.Formatter('%(asctime)s\t%(levelname)s\t%(name)s\t%(message)s')
fh.setFormatter(file_formatter)
logger.addHandler(fh)
sh = logging.StreamHandler()
sh.setLevel(logging.INFO)
stream_formatter = logging.Formatter('%(asctime)s|%(levelname)s|%(message)s')
sh.setFormatter(stream_formatter)
logger.addHandler(sh)

第二种,这种写法好像会导致后面的StreamHandler 的日志会先被根过滤器的level设置过滤掉:

import logging
# 输出日志到文件,filename有参数时,日志不再输出屏幕,需要另建StreamHandler对象,输出屏幕
logging.basicConfig(format='%(asctime)s : %(levelname)s : %(message)s', level=logging.INFO,filename='日志文件完整路径')
logger = logging.getLogger() #root logger
formatter = logging.Formatter('%(asctime)s|%(levelname)s|%(message)s')
StreamHandler = logging.StreamHandler()
StreamHandler.setLevel(logging.WARNING)
StreamHandler.setFormatter(formatter)
logger.addHandler(StreamHandler)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值