Python中如何打印日志信息

发表于:2023-2-28 09:08

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:三爷麋了鹿    来源:CSDN

  日志打印方式
  常见的Python日志打印方式为使用内置函数print()或者logging模块打印日志。
  ·print()只能将日志打印至控制台,不推荐此方式
  · ogging模块默认将日志打印至控制台,也可以配置打印到指定日志文件,推荐使用此方式
  日志等级
  logging提供了函数来做日志处理,分别为debug()/info()/warning()/error()/critical(),对应日志的五个等级DEBUG/INFO/WARNING/ERROR/CRITICAL。如下表所示。
  设置日志等级后只会打印大于等于当前等级的日志,从logging模块的源码里可见日志等级大小排序如下。
  DEBUG等级值最小,因此会打印出所有等级的日志。
  logging里的默认等级为WARNING,也就是说在不设置日志等级的情况下,只有WARNING/ERROR/CRITICAL的日志才会被打印输出。
  打印输出
  1. 如果只是打印至控制台,使用basicConfig()函数即可。默认的日志收集器名称为root,可以在创建日志对象时设置该名称。
  logging.basicConfig(level=logging.INFO)
  2. 如果需要打印至日志文件,可参考如下示例代码。
  # 创建日志对象(不设置时默认名称为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文件的日志格式如下:
  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号