官网介绍:https://docs.python.org/2/library/logging.html

一、 基础使用

1.1 logging使用场景

日志是什么?这个不用多解释。百分之九十的程序都需要提供日志功能。Python内置的logging模块,为我们提供了现成的高效好用的日志解决方案。但是,不是所有的场景都需要使用logging模块,下面是Python官方推荐的使用方法:

任务场景 最佳工具
普通情况下,在控制台显示输出 print()
报告正常程序操作过程中发生的事件 logging.info()(或者更详细的logging.debug())
发出有关特定事件的警告 warnings.warn()或者logging.warning()
报告错误 弹出异常
在不引发异常的情况下报告错误 logging.error()logging.exception()或者logging.critical()

logging模块定义了下表所示的日志级别,按事件严重程度由低到高排列(注意是全部大写!因为它们是常量。):

级别 级别数值 使用时机
DEBUG 10 详细信息,常用于调试。
INFO 20 程序正常运行过程中产生的一些信息。
WARNING 30 警告用户,虽然程序还在正常工作,但有可能发生错误。
ERROR 40 由于更严重的问题,程序已不能执行一些功能了。
CRITICAL 50 严重错误,程序已不能继续运行。

默认级别是WARNING,表示只有WARING和比WARNING更严重的事件才会被记录到日志内,低级别的信息会被忽略。因此,默认情况下,DEBUG和INFO会被忽略,WARING、ERROR和CRITICAL会被记录。

有多种方法用来处理被跟踪的事件。最简单的方法就是把它们打印到终端控制台上。或者将它们写入一个磁盘文件内。

1.2 简单范例

在什么都不配置和设定的情况下,logging会简单地将日志打印在显示器上,如下例所示:

import logging
logging.warning('Watch out!') # 消息会被打印到控制台上
logging.info('I told you so') # 这行不会被打印,因为级别低于默认级别

如果,将上面的代码放在一个脚本里并运行,结果是:

WARNING:root:Watch out!

1.3 高级使用
 import logging

 #创建logger记录器
logging.basicConfig(filename='example.log',level=logging.DEBUG)
logger = logging.getLogger('simple_example')
logger.setLevel(logging.DEBUG) #创建一个控制台处理器,并将日志级别设置为debug ch = logging.StreamHandler() ch.setLevel(logging.DEBUG) #创建formatter格式化器
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') #将formatter 添加到ch处理器
ch.setFormatter(formatter) #将ch添加到logger
logger.addHandler(ch) #然后就可以开始使用了
# logger.debug('debug message')
#logger.info('info message')
# logger.warning('warn message')
# logger.error('error message')
# logger.critical('critical message') def Logss():
#要打印的信息
a = ""
logger.info(a) Logss()

 

最新文章

  1. [开源].NET数据库访问框架Chloe.ORM
  2. mybatis- spring 批量实现数据导入数据库
  3. Swift语言之类型方法
  4. memcache(三)内存管理
  5. Selenium2+python自动化27-查看selenium API
  6. Shortest Word Distance
  7. HDU 4460 Friend Chains (BFS,最长路径)
  8. C++空类以及没有成员变量的类的大小
  9. MySQL学习笔记之一
  10. 画画 保存为图片 MaskFilter 边缘效果
  11. 编程习题——Maximum Subarray
  12. 双色球机选算法java实现
  13. 去掉textarea和input在ios下默认出现的圆角
  14. pig简单的代码实例:报表统计行业中的点击和曝光量
  15. Linux 打开句柄限制的调整
  16. 上传插件webupload之调用拍照兼容问题
  17. JS(JavaScript)的进一步了解3(更新中···)
  18. BZOJ2877 NOI2012魔幻棋盘(二维线段树)
  19. Linux常见问题整理
  20. linux下如何使make只输出执行过程中的命令序列

热门文章

  1. 科xue上网工具
  2. 分享windows 10 下部署 elasticsearch 和 logstash
  3. C#反射_两合并更新实体
  4. Markdown温故知新(0):导航目录
  5. 深浅赋值+orm操作+Django-admin简单配置
  6. v-text和v-html绑定数据显示
  7. Linux操作:使用grep排除搜索的目录
  8. javascript高级程序设计学习历程
  9. Python的变量命名规则
  10. druid + mysql + mybatis 批量更新报错