python logging 模块

来源:互联网 发布:无人机编程教材 编辑:程序博客网 时间:2024/05/16 10:47

python logging模块学习总结

本文主要介绍python logging模块使用的基本方法,有兴趣的朋友可以看[英文文档]


logging level

日志等级主要分为以下5个等级,模块定义了一下几个函数分别用于不同等级的日志打印,分别为dubug(), info(), warning(), error(), critical()。

level 应用场景 debug 打印详细信息 info 打印符合预期的信息 warning 打印不符合预期的信息 ERROR 打印错误信息,某些函数未能完成某项功能 critical 打印严重错误信息,这类信息预示着程序本身可能无法继续进行

默认的level是warning,表示只有该级别或者更高级别的日志信息才会打印出来,可以通过basicConfig进行默认级别配置。

1. 简单例子

import logginglogging.warning('this is warning!')logging.info('this is info')

上述实例只会打印出warning的信息,如下图所示:

WARNING:root:this is warning!

2. 日志输出到文件下

通过basicConfig可以将日志输出到指定的文件

import logginglogging.basicConfig(filename='exe.log', level=logging.DEBUG, format='%(asctime)s %(levelname)s: %(message)s')logging.warning('this is warning!')logging.info('this is info')

执行后会在当前工作目录下生成exe.log的日志,日志文件内会打印出以下信息:

2017-02-07 22:38:28,037 WARNING: this is warning! 2017-02-07 22:38:28,038 INFO: this is info 

3. basicConfig()

basicConfig 要在调用info()、warning()等函数打印日志之前调用,并且只会调用一次,只有第一次调用的时候会生效。在多个模块内使用logging时,可以在程序的入口处进行basicConfig的设置。

basicConfig主要参数如下:

  • filename: 指定日志输出文件
  • filemode: 以特定的方式打开日志文件,默认是’a’,还有’w’ 形式。a为追加方式写入。
  • format: 每条日志的打印格式参数
  • datefmt: 日期输出格式
  • level: 默认输出等级
  • stream: 指定日志的输出流,当与filename同时指定时stream会被忽略

    至此logging的基本用法大概介绍了一下,有想更深入的了解朋友可以参看因为文档或者源码。

0 0