第四章 使用logging库记录日志信息-4.2

感谢大家关注,帮忙分享呦,你们的阅读就是我的动力!!!

公众号:小李测试随笔

第四章 使用logging库记录日志信息-4.2

logging库为python内置库,无须额外安装,logging提供日志打印功能。

4.2 将日志输出到控制台和文件

4.2.1 将日志输出到控制台

在项目测试的初期,需要随时的对代码进行调试和修改,调试的结果可以直接通过日志输出到控制台,这是最简单的方式。如需将程序的日志输出到控制台,可以通过StreamHandler()方法创建控制台实例,并通过addHandler()方法将控制台实例增加到日志对象中

将日志输出到控制台

import logging
#创建logger对象
logger = logging.getLogger('test_logger')
#设置日志输出等级总开关
logger.setLevel(logging.DEBUG)
#创建控制台实例
sh = logging.StreamHandler()
#设置控制台输出日志级别
sh.setLevel(logging.DEBUG)
#设置控制台输出格式
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
sh.setFormatter(formatter)
#加载控制台实例到logger对象中
logger.addHandler(sh)
if __name__ == "__main__":
    logging.debug('-----调试信息【debug】-----')
    logging.info('-----有用的信息【info】-----')
    logging.warning('-----警告信息【warning】-----')
    logging.error('----错误信息【error】-----')
    logging.critical('-----严重错误【critical】-----')

结果

说明:默认值输出到控制台的时候,只显示warning以上级别的信息

4.2.2  将日志输出到文件

在项目完成的后期,需要记录的不仅仅是某个程序片段的运行情况,还包括整套程序的运行情况,此时可以将日志输出到文件,以方便保存和后期检查。如需将程序的日志消息输出到文件,可以通过FileHandler()方法创建文件实例,通过addHandler()方法增加到日志对象中

日志输出到文件

# 导入 logging 库
import logging
# 创建 logger 对象
logger = logging.getLogger('test_logger')
# 设置日志输出等级总开关
logger.setLevel(logging.DEBUG)
'''
创建一个文件实例,如果 api.log 文件不存在,就会自动创建;

mode 参数设置为追加;另外为防止乱码, encoding 参数设置为 utf8 编码格式

'''
fh = logging.FileHandler('api.log',mode='a',encoding='utf-8')
# 设置向文件输出的日志级别
fh.setLevel(logging.DEBUG)
# 设置向文件输出的日志格式
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
fh.setFormatter(formatter)
# 加载文件实例到 logger 对象中
logger.addHandler(fh)
if __name__ == "__main__":
logger.debug('----- 调试信息 [debug]-----')
logger.info('----- 有用的信息 [info]-----')
logger.warning('----- 警告信息 [warning]-----')
logger.error('----- 错误信息 [error]-----')
logger.critical('----- 严重错误信息 [critical]-----')

4.2.3   将日志同时输出到控制台和文件

# 导入 logging 库
import logging
# 创建 logger 对象
logger = logging.getLogger('test_logger')
# 设置日志输出等级总开关
logger.setLevel(logging.DEBUG)
# 创建控制台实例
sh = logging.StreamHandler()
'''
创建一个文件实例,如果 api.log 文件不存在,就会自动创建;

mode 参数设置为追加;另外为防止乱码, encoding 参数设置为 utf-8 编码格式

'''
fh = logging.FileHandler('api.log',mode='a',encoding='utf-8')
# 设置控制台输出的日志级别
sh.setLevel(logging.DEBUG)
# 设置向文件输出的日志级别
fh.setLevel(logging.DEBUG)
# 统一设置日志的输出格式
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
# 设置向控制台输出的日志格式
sh.setFormatter(formatter)
# 设置向文件输出的日志格式
fh.setFormatter(formatter)
# 加载控制台实例到 logger 对象中
logger.addHandler(sh)
# 加载文件实例到 logger 对象中
logger.addHandler(fh)
if __name__ == "__main__":
logger.debug('----- 调试信息 [debug]-----')
logger.info('----- 有用的信息 [info]-----')
logger.warning('----- 警告信息 [warning]-----')
logger.error('----- 错误信息 [error]-----')
logger.critical('----- 严重错误信息 [critical]-----')

结果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值