Python 中 logging 模块使用详情


Posted in Python onMarch 03, 2022

1.为什么要用logging模块

在实际应用中,日志文件十分重要,通过日志文件,我们知道程序运行的细节;同时,当程序出问题时,我们也可以通过日志快速定位问题所在。在我们写程序时,也可以借助 logging 模块的输出信息来调试代码。

但是很多人还是在程序中使用print()函数来输出一些信息,比如:

print 'Start reading database'
records = model.read_recrods()
print '# records', records
print 'Updating record ...'
model.update_records(records)
print 'done'

这样用的话缺点很明显,当程序写好运行时,我们要把这些print()函数删掉,在简单的的程序中用还行,当程序比较复杂时,这个办法很低效。

如果使用logging模块,看看效果

import logging
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)

logger.info('Start reading database')
# read database here
records = {'john': 55, 'tom': 66}
logger.debug('Records: %s', records)
logger.info('Updating records ...')
# update records here
logger.info('Finish updating records')

运行结果如下:

INFO:__main__:Start reading database
INFO:__main__:Updating records ...
INFO:__main__:Finish updating records

你也许会问,这和print()函数有什么区别呢?区别就在于,logging模块可以通过改变level来控制一些语句是否被输出,比如当我们把level改成DEBUG级别:

logging.basicConfig(level=logging.DEBUG)

得到输出如下:

INFO:__main__:Start reading database
DEBUG:__main__:Records: {'john': 55, 'tom': 66}
INFO:__main__:Updating records ...
INFO:__main__:Finish updating records

2.logging模块介绍

logging 模块是python自带的一个包,因此在使用的时候,不必安装,只需要import即可。有5个level,分别是debug,主要是查看一下程序运行的信息,一般是调试程序要看的信息;info,是我们看程序是否如预料执行的信息;warn,意料之外的,但是不影响程序运行;errorcritical就是一些比较严重的问题,会影响程序运行。默认leval是warn,这个时候debug级别和info级别就不会被输出到日志里了。如果想要看到这些信息,就需要进行一些设置。

3.基础设置

我们主要调用basicConfig(***kwargs*)这个函数对logging进行设置。

常用的参数如下:

  • level:主要调整logging的级别
  • filename:输出日志的路径
  • filemode:直接写入还是追加写入
  • format:输出的格式

我们通过调整format,可以输出我们想要的格式,比如:

import logging

logging.basicConfig(format='%(asctime)s - %(message)s', datefmt='%d-%b-%y %H:%M:%S')
logging.warning('Admin logged out')

结果是:

12-Jul-18 20:53:19 - Admin logged out

这就是在format参数中设置了时间的,所以得到了时间,我们可以输出多种想要的信息

总结:

本文主要介绍了logging模块的基础用法,除非是自己写的小脚本中我们使用print()函数,其他情况下最好还是用logging模块来打印信息,输出日志吧。

到此这篇关于 Python 中 logging 模块使用详情的文章就介绍到这了,更多相关 Python 中 logging 模块使用内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python检测远程udp端口是否打开的方法
Mar 14 Python
用Python生成器实现微线程编程的教程
Apr 13 Python
Python实现读取及写入csv文件的方法示例
Jan 12 Python
python 去除txt文本中的空格、数字、特定字母等方法
Jul 24 Python
基于Python3.6+splinter实现自动抢火车票
Sep 25 Python
Python标准库使用OrderedDict类的实例讲解
Feb 14 Python
计算机二级python学习教程(1) 教大家如何学习python
May 16 Python
python可视化实现KNN算法
Oct 16 Python
python实现logistic分类算法代码
Feb 28 Python
Python threading.local代码实例及原理解析
Mar 16 Python
浅析python 定时拆分备份 nginx 日志的方法
Apr 27 Python
Python办公自动化之教你如何用Python将任意文件转为PDF格式
Jun 28 Python
分享7个 Python 实战项目练习
Mar 03 #Python
python工具dtreeviz决策树可视化和模型可解释性
Python GUI编程之tkinter 关于 ttkbootstrap 的使用详解
python机器学习实现oneR算法(以鸢尾data为例)
Mar 03 #Python
详解python的异常捕获
Mar 03 #Python
分享提高 Python 代码的可读性的技巧
Mar 03 #Python
使用python创建股票的时间序列可视化分析
You might like
php-redis中的sort排序函数总结
2015/07/08 PHP
php求今天、昨天、明天时间戳的简单实现方法
2016/07/28 PHP
详解new function(){}和function(){}() 区别分析
2008/03/22 Javascript
flash javascript之间的通讯方法小结
2008/12/20 Javascript
javascript针对DOM的应用分析(二)
2012/04/15 Javascript
jquery Mobile入门—外部链接切换示例代码
2013/01/08 Javascript
基于OO的动画附加插件,可以实现弹跳、渐隐等动画效果 分享
2013/06/24 Javascript
JS动态修改表格cellPadding和cellSpacing的方法
2015/03/31 Javascript
js获取iframe中的window对象的实现方法
2016/05/20 Javascript
轻松学习Javascript闭包
2017/03/01 Javascript
在vue中添加Echarts图表的基本使用教程
2017/11/22 Javascript
ES6实现图片切换特效代码
2020/01/14 Javascript
vue二选一tab栏切换新做法实现
2021/01/19 Vue.js
[33:09]完美世界DOTA2联赛循环赛 Forest vs DM BO2第二场 10.29
2020/10/29 DOTA
Python的Django框架中模板碎片缓存简介
2015/07/24 Python
Python中线程的MQ消息队列实现以及消息队列的优点解析
2016/06/29 Python
Python编程之字符串模板(Template)用法实例分析
2017/07/22 Python
Python简单实现查找一个字符串中最长不重复子串的方法
2018/03/26 Python
Python 实现两个列表里元素对应相乘的方法
2018/11/14 Python
pytorch实现CNN卷积神经网络
2020/02/19 Python
Python + opencv对拍照得到的图片进行背景去除的实现方法
2020/11/18 Python
HTML5 Canvas中绘制矩形实例
2015/01/01 HTML / CSS
html5超简单的localStorage实现记住密码的功能实现
2017/09/07 HTML / CSS
魅力惠奢品线上平台:MEI.COM
2016/11/29 全球购物
中职生自我鉴定范文
2013/10/03 职场文书
计算机专业毕业生的自我评价
2013/11/18 职场文书
企业节能减排实施方案
2014/03/19 职场文书
《充气雨衣》教学反思
2014/04/07 职场文书
交通安全寄语大全
2014/04/08 职场文书
新学期标语
2014/06/30 职场文书
ktv好的活动方案
2014/08/17 职场文书
小学安全工作汇报材料
2014/08/19 职场文书
2014年酒店年度工作总结
2014/12/10 职场文书
2015年财务工作总结范文
2015/03/31 职场文书
大学生违纪检讨书范文
2015/05/07 职场文书
基层党建工作简报
2015/07/21 职场文书