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 time模块详解(常用函数实例讲解,非常好)
Apr 24 Python
python基于urllib实现按照百度音乐分类下载mp3的方法
May 25 Python
Python时间获取及转换知识汇总
Jan 11 Python
pip安装时ReadTimeoutError的解决方法
Jun 12 Python
Python判断字符串是否为字母或者数字(浮点数)的多种方法
Aug 03 Python
python单例模式实例解析
Aug 28 Python
python得到一个excel的全部sheet标签值方法
Dec 10 Python
Python SELENIUM上传文件或图片实现过程
Oct 28 Python
python 实现将Numpy数组保存为图像
Jan 09 Python
python3代码中实现加法重载的实例
Dec 03 Python
python实现定时发送邮件
Dec 23 Python
微软开源最强Python自动化神器Playwright(不用写一行代码)
Jan 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
PL-880隐藏功能
2021/03/01 无线电
php中计算时间差的几种方法
2009/12/31 PHP
PHP中的session安全吗?
2016/01/22 PHP
PHP使用Memcache时模拟命名空间及缓存失效问题的解决
2016/02/27 PHP
Vagrant(WSL)+PHPStorm+Xdebu 断点调试环境搭建
2019/12/13 PHP
常见的5个PHP编码小陋习以及优化实例讲解
2021/02/27 PHP
php慢查询日志和错误日志使用详解
2021/02/27 PHP
XHTML-Strict 内允许出现的标签
2006/12/11 Javascript
Javascript----文件操作
2007/01/18 Javascript
Jquery 高亮显示文本中重要的关键字
2009/12/24 Javascript
为开发者准备的10款最好的jQuery日历插件
2014/02/04 Javascript
jQuery表格插件datatables用法详解
2020/11/23 Javascript
JavaScript笛卡尔积超简单实现算法示例
2018/07/30 Javascript
vue-cli3.0配置及使用注意事项详解
2018/09/05 Javascript
浅谈Vue数据响应思路之数组
2018/11/06 Javascript
Vue Components 数字键盘的实现
2019/09/18 Javascript
JS自定义滚动条效果
2020/03/13 Javascript
[02:42]DOTA2英雄基础教程 杰奇洛
2013/12/23 DOTA
Python爬取三国演义的实现方法
2016/09/12 Python
Python图像处理之识别图像中的文字(实例讲解)
2018/05/10 Python
Python考拉兹猜想输出序列代码实践
2019/07/05 Python
Python timer定时器两种常用方法解析
2020/01/20 Python
Python HTMLTestRunner库安装过程解析
2020/05/25 Python
详解python程序中的多任务
2020/09/16 Python
关于python tushare Tkinter构建的简单股票可视化查询系统(Beta v0.13)
2020/10/19 Python
python3.9.1环境安装的方法(图文)
2021/02/02 Python
使用HTML5 Canvas API绘制弧线的教程
2016/03/22 HTML / CSS
Booking.com英国官网:全球酒店在线预订网站
2018/04/21 全球购物
static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?
2015/02/22 面试题
投标人法定代表人授权委托书格式
2014/09/28 职场文书
个人作风纪律整顿整改措施
2014/10/25 职场文书
2014年医德医风工作总结
2014/11/13 职场文书
被委托人身份证明
2015/08/07 职场文书
2016年基层党支部书记公开承诺书
2016/03/25 职场文书
python可视化大屏库big_screen示例详解
2021/11/23 Python
用Python可视化新冠疫情数据
2022/01/18 Python