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实现的检测web服务器健康状况的小程序
Sep 17 Python
Python实现的简单发送邮件脚本分享
Nov 07 Python
使用Python的PIL模块来进行图片对比
Feb 18 Python
Python中生成Epoch的方法
Apr 26 Python
python 用下标截取字符串的实例
Dec 25 Python
python 定时任务去检测服务器端口是否通的实例
Jan 26 Python
python设计微型小说网站(基于Django+Bootstrap框架)
Jul 08 Python
python dict乱码如何解决
Jun 07 Python
基于Python爬取京东双十一商品价格曲线
Oct 23 Python
pycharm 2020.2.4 pip install Flask 报错 Error:Non-zero exit code的问题
Dec 04 Python
Python基础之赋值,浅拷贝,深拷贝的区别
Apr 30 Python
python编程简单几行代码实现视频转换Gif示例
Oct 05 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
PHP 选项及相关信息函数库
2006/12/04 PHP
PHP判断搜索引擎蜘蛛并自动记忆到文件的代码
2012/02/04 PHP
PHP生成自适应大小的缩略图类及使用方法分享
2014/05/06 PHP
PHP清除数组中所有字符串两端空格的方法
2014/10/20 PHP
PHP直接修改表内容DataGrid功能实现代码
2015/09/24 PHP
在Mac OS上搭建PHP的Yii框架及相关测试环境
2016/02/14 PHP
POST一个JSON格式的数据给Restful服务实例详解
2017/04/07 PHP
PHPStorm2020.1永久激活及下载更新至2020(推荐)
2020/09/25 PHP
javascript函数特点实例分析
2015/05/14 Javascript
JavaScript程序开发之JS代码放置的位置
2016/01/15 Javascript
jQuery+canvas实现简单的球体斜抛及颜色动态变换效果
2016/01/28 Javascript
jquery获取复选框checkbox的值实现方法
2016/05/30 Javascript
全面了解JavaScirpt 的垃圾(garbage collection)回收机制
2016/07/11 Javascript
jQuery插件zTree实现删除树子节点的方法示例
2017/03/08 Javascript
vue项目打包后怎样优雅的解决跨域
2019/05/26 Javascript
python实现人人网登录示例分享
2014/01/19 Python
python optparse模块使用实例
2015/04/09 Python
详解Python编程中基本的数学计算使用
2016/02/04 Python
Python 内置函数memoryview(obj)的具体用法
2017/11/23 Python
基于pygame实现童年掌机打砖块游戏
2020/02/25 Python
python的Jenkins接口调用方式
2020/05/12 Python
python 利用opencv实现图像网络传输
2020/11/12 Python
雅诗兰黛旗下走天然植物路线的彩妆品牌:Prescriptives
2016/08/14 全球购物
FILA德国官方网站:来自意大利的体育和街头服饰品牌
2019/07/19 全球购物
研究生自我鉴定范文
2013/10/30 职场文书
会计出纳员的自我评价
2014/01/15 职场文书
建筑工地标语
2014/06/18 职场文书
小学网上祭英烈活动总结
2014/07/05 职场文书
在职证明书范本(2014新版)
2014/09/25 职场文书
儿园租房协议书范本
2014/12/02 职场文书
2015年世界卫生日活动总结
2015/02/09 职场文书
2016自主招生校长推荐信范文
2015/03/23 职场文书
上市公司董事长岗位职责
2015/04/16 职场文书
起诉状范本
2015/05/20 职场文书
详解JS ES6编码规范
2021/05/07 Javascript
PostgreSQL解析URL的方法
2021/08/02 PostgreSQL