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生成随机MAC地址
Mar 10 Python
用Python的Django框架编写从Google Adsense中获得报表的应用
Apr 17 Python
研究Python的ORM框架中的SQLAlchemy库的映射关系
Apr 25 Python
Python输出汉字字库及将文字转换为图片的方法
Jun 04 Python
Python:Scrapy框架中Item Pipeline组件使用详解
Dec 27 Python
Python Scapy随心所欲研究TCP协议栈
Nov 20 Python
python爬虫获取百度首页内容教学
Dec 23 Python
python中bs4.BeautifulSoup的基本用法
Jul 27 Python
基于python实现的百度新歌榜、热歌榜下载器(附代码)
Aug 05 Python
理解Django 中Call Stack机制的小Demo
Sep 01 Python
matplotlib绘制多子图共享鼠标光标的方法示例
Jan 08 Python
python实现简单的学生管理系统
Feb 22 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结合js实现点击超链接执行删除确认操作
2014/10/31 PHP
php编写的一个E-mail验证类
2015/03/25 PHP
PHP实现的最大正向匹配算法示例
2017/12/19 PHP
excel操作之Add Data to a Spreadsheet Cell
2007/06/12 Javascript
js查找父节点的简单方法
2008/06/28 Javascript
javascript 写类方式之九
2009/07/05 Javascript
jquery.ui.progressbar 中文文档
2009/11/26 Javascript
javascript作用域容易记错的两个地方分析
2012/06/22 Javascript
基于jQuery判断两个元素是否有重叠部分的代码
2012/07/25 Javascript
javascript模块化是什么及其优缺点介绍
2013/09/02 Javascript
js中switch case循环实例代码
2013/12/30 Javascript
javascript实现的平方米、亩、公顷单位换算小程序
2014/08/11 Javascript
JS实现仿中关村论坛评分后弹出提示效果的方法
2015/02/23 Javascript
百度地图自定义控件分享
2015/03/04 Javascript
使用jquery插件qrcode生成二维码
2015/10/22 Javascript
详解JavaScript中js对象与JSON格式字符串的相互转换
2017/02/14 Javascript
浅谈JS如何实现真正的对象常量
2017/06/25 Javascript
vue中添加mp3音频文件的方法
2018/03/02 Javascript
nodejs 十六进制字符串型数据与btye型数据相互转换
2018/07/30 NodeJs
vue模块移动组件的实现示例
2020/05/20 Javascript
Python PyQt5实现的简易计算器功能示例
2017/08/23 Python
分享6个隐藏的python功能
2017/12/07 Python
Java及python正则表达式详解
2017/12/27 Python
wxPython之解决闪烁的问题
2018/01/15 Python
Python贪心算法实例小结
2018/04/22 Python
pandas删除行删除列增加行增加列的实现
2019/07/06 Python
Python 依赖库太多了该如何管理
2019/11/08 Python
使用python3批量下载rbsp数据的示例代码
2019/12/20 Python
kmart凯马特官网:美国最大的打折零售商和全球最大的批发商之一
2016/11/17 全球购物
阿玛尼美妆俄罗斯官网:Giorgio Armani Beauty RU
2020/07/19 全球购物
某/etc/fstab文件中的某行如下: /dev/had5 /mnt/dosdata msdos defaults,usrquota 1 2 请解释其含义
2013/09/18 面试题
实习自我鉴定范文
2013/10/30 职场文书
五型班组建设方案
2014/02/10 职场文书
音乐教育感言
2014/03/05 职场文书
企业节能减排实施方案
2014/03/19 职场文书
2015年加油站工作总结
2015/05/13 职场文书