python log输出到屏幕和文件

代码例子如下:

logger = logging.getLogger("simple_example")
logger.setLevel(logging.DEBUG) 
# logger的setLevel是最根本的
fh = logging.FileHandler("out_project_ttt.log") 
# 如果没有这个,就不会输出到文件

fh.setLevel(logging.INFO) 
ch = logging.StreamHandler()
ch.setLevel(logging.INFO)

formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")
ch.setFormatter(formatter)
fh.setFormatter(formatter)
logger.addHandler(ch)
logger.addHandler(fh)


logger.debug('debug')
logger.info('info')
logger.warning('waring')
logger.error('error')
logger.critical('critical ')

总结一下。
python的 logger提供了更好的接口。可以通过FileHander和StreamHandler分别制定向文件和屏幕输出。
logger.setLevel 是最根本的,它掌管了处理哪些日志。如果这里设置成了warn(默认),fh和ch设置更低级别的level(info,debug等),也不起作用了。
设定了logger的level之后fh.setLevel和ch.setLevel可以设定更高的级别。

举个典型的例子:logger设置为INFO,fh设置为ERROR,ch设置为DEBUG,那么屏幕上不会输出DEBUG日志,而fh不会记录INFO日志。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值