python  logging日志打印过程解析


Posted in Python onOctober 22, 2019

一、 基础使用

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 = "3"
  logger.info(a)

Logss()

python  logging日志打印过程解析

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python对小数进行除法运算的正确方法示例
Aug 25 Python
python打开网页和暂停实例
Sep 30 Python
在python中实现同行输入/接收多个数据的示例
Jul 20 Python
树莓派3 搭建 django 服务器的实例
Aug 29 Python
pytorch中交叉熵损失(nn.CrossEntropyLoss())的计算过程详解
Jan 02 Python
Python基础之函数原理与应用实例详解
Jan 03 Python
PyQt5 如何让界面和逻辑分离的方法
Mar 24 Python
django ObjectDoesNotExist 和 DoesNotExist的用法
Jul 09 Python
使用Python实现音频双通道分离
Dec 25 Python
用Python爬取某乎手机APP数据
Jun 15 Python
Python pandas求方差和标准差的方法实例
Aug 04 Python
Python循环之while无限迭代
Apr 30 Python
安装2019Pycharm最新版本的教程详解
Oct 22 #Python
Python列表list常用内建函数实例小结
Oct 22 #Python
Python爬虫使用浏览器cookies:browsercookie过程解析
Oct 22 #Python
Python异常模块traceback用法实例分析
Oct 22 #Python
Python多线程爬取豆瓣影评API接口
Oct 22 #Python
Python Process多进程实现过程
Oct 22 #Python
详解python中eval函数的作用
Oct 22 #Python
You might like
简单示例AJAX结合PHP代码实现登录效果代码
2008/07/25 PHP
使用array_map简单搞定PHP删除文件、删除目录
2014/10/29 PHP
浅析Yii2 gridview实现批量删除教程
2016/04/22 PHP
PHP自定义序列化接口Serializable用法分析
2017/12/29 PHP
php设计模式之工厂方法模式分析【星际争霸游戏案例】
2020/01/23 PHP
IE6、IE7中获取Button元素的值的bug说明
2011/08/28 Javascript
选择器中含有空格在使用示例及注意事项
2013/07/31 Javascript
JavaScript定时器详解及实例
2013/08/01 Javascript
如何实现textarea里的不同文本显示不同颜色
2014/01/20 Javascript
AngularJS 执行流程详细介绍
2016/08/18 Javascript
Vue.js实现按钮的动态绑定效果及实现代码
2017/08/21 Javascript
vue使用element-ui的el-input监听不了回车事件的解决方法
2018/01/12 Javascript
JQuery常见节点操作实例分析
2019/05/15 jQuery
vue 中使用 watch 出现了如下的报错的原因分析
2019/05/21 Javascript
微信小程序判断用户是否需要再次授权获取个人信息
2019/07/18 Javascript
微信小程序自定义组件components(代码详解)
2019/10/21 Javascript
jquery制作的移动端购物车效果完整示例
2020/02/24 jQuery
python的迭代器与生成器实例详解
2014/07/16 Python
Python 模块EasyGui详细介绍
2017/02/19 Python
python的多重继承的理解
2017/08/06 Python
浅谈Python的条件判断语句if/else语句
2019/03/21 Python
使用Python的OpenCV模块识别滑动验证码的缺口(推荐)
2019/05/10 Python
django实现模板中的字符串文字和自动转义
2020/03/31 Python
iphoneX 适配客户端H5页面的方法教程
2017/12/08 HTML / CSS
opencv实现图像平移效果
2021/03/24 Python
触摸春天教学反思
2014/02/03 职场文书
《要下雨了》教学反思
2014/02/17 职场文书
青年文明号创建承诺
2014/03/31 职场文书
体育活动总结范文
2014/05/04 职场文书
委托书格式
2014/08/01 职场文书
行政专员岗位职责范本
2014/08/26 职场文书
档案工作个人总结
2015/03/03 职场文书
幼儿园元旦主持词
2015/07/06 职场文书
2016年少先队活动总结
2016/04/06 职场文书
python b站视频下载的五种版本
2021/05/27 Python
springboot+rabbitmq实现智能家居实例详解
2022/07/23 Java/Android