python中如何打印日志信息

日志打印方式

常见的Python日志打印方式为使用内置函数print()或者logging模块打印日志。

  • print()只能将日志打印至控制台,不推荐此方式
  • logging模块默认将日志打印至控制台,也可以配置打印到指定日志文件,推荐使用此方式
logging模块
日志等级

logging提供了函数来做日志处理,分别为debug()/info()/warning()/error()/critical(),对应日志的五个等级DEBUG/INFO/WARNING/ERROR/CRITICAL。如下表所示。

函数日志等级等级值说明
debug()DEBUG10调试模式下的日志,一般是给程序员看的
info()INFO20程序正常运行时输出的日志
warning()WARNING30警告信息,提示将来可能出现的问题
error()ERROR40程序运行过程中出现的错误信息
critical()CRITICAL50严重错误,表明软件已罢工

设置日志等级后只会打印大于等于当前等级的日志,从logging模块的源码里可见日志等级大小排序如下。
日志级别
DEBUG等级值最小,因此会打印出所有等级的日志。
logging里的默认等级为WARNING,也就是说在不设置日志等级的情况下,只有WARNING/ERROR/CRITICAL的日志才会被打印输出。

打印输出
  1. 如果只是打印至控制台,使用basicConfig()函数即可。默认的日志收集器名称为root,可以在创建日志对象时设置该名称。
logging.basicConfig(level=logging.INFO)
  1. 如果需要打印至日志文件,可参考如下示例代码。
# 创建日志对象(不设置时默认名称为root)
log = logging.getLogger('test_http')
# 设置日志级别(默认为WARNING)
log.setLevel('INFO')
# 设置输出渠道(以文件方式输出需设置文件路径)
file_handler = logging.FileHandler('test.log', encoding='utf-8')
file_handler.setLevel('INFO')
# 设置输出格式(实例化渠道)
fmt_str = '%(asctime)s %(thread)d %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s'
formatter = logging.Formatter(fmt_str)
# 绑定渠道的输出格式
file_handler.setFormatter(formatter)
# 绑定渠道到日志收集器
log.addHandler(file_handler)

def test_login():
    log.info("login start...")

if __name__ == '__main__':
    log.setLevel(logging.ERROR)
    test_login()

输出至log文件的日志格式如下:
日志文件

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值