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绘制七段数码管实例代码
Dec 20 Python
tf.truncated_normal与tf.random_normal的详细用法
Mar 05 Python
OpenCV2从摄像头获取帧并写入视频文件的方法
Aug 03 Python
Python正则表达式指南 推荐
Oct 09 Python
django 实现编写控制登录和访问权限控制的中间件方法
Jan 15 Python
redis数据库及与python交互用法简单示例
Nov 01 Python
wxPython实现列表增删改查功能
Nov 19 Python
opencv python如何实现图像二值化
Feb 03 Python
python中数据库like模糊查询方式
Mar 02 Python
使用python从三个角度解决josephus问题的方法
Mar 27 Python
python 基于Apscheduler实现定时任务
Dec 15 Python
Python实现数据的序列化操作详解
Jul 07 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
Content-type 的说明
2006/10/09 PHP
使用apache模块rewrite_module (转)
2007/02/14 PHP
PHP数组操作汇总 php数组的使用技巧
2011/07/17 PHP
使用php测试硬盘写入速度示例
2014/01/27 PHP
Zend Framework教程之Resource Autoloading用法实例
2016/03/08 PHP
Yii净化器CHtmlPurifier用法示例(过滤不良代码)
2016/07/15 PHP
PHP读取并输出XML文件数据的简单实现方法
2017/12/22 PHP
laravel5.5安装jwt-auth 生成token令牌的示例
2019/10/24 PHP
javascript 图片上一张下一张链接效果代码
2010/03/12 Javascript
jQuery maxlength文本字数限制插件
2010/04/16 Javascript
js批量设置样式的三种方法不推荐使用with
2013/02/25 Javascript
jsonp原理及使用
2013/10/28 Javascript
浅谈JS对html标签的属性的干预以及对CSS样式表属性的干预
2017/06/25 Javascript
Vue网页html转换PDF(最低兼容ie10)的思路详解
2017/08/24 Javascript
node实现的爬虫功能示例
2018/05/04 Javascript
JS实现将二维数组转为json格式字符串操作示例
2018/07/12 Javascript
微信小程序实现登录遮罩效果
2018/11/01 Javascript
[03:43]TI9战队采访——PSG.LGD
2019/08/22 DOTA
Python(Tornado)模拟登录小米抢手机
2013/11/12 Python
python机器学习理论与实战(二)决策树
2018/01/19 Python
python excel使用xlutils类库实现追加写功能的方法
2018/05/02 Python
Python字符串通过'+'和join函数拼接新字符串的性能测试比较
2019/03/05 Python
纯css3实现鼠标经过图片显示描述的动画效果
2014/09/01 HTML / CSS
使用CSS3的appearance属性改变元素的外观的方法
2015/12/12 HTML / CSS
HTML5中form如何关闭自动完成功能的方法
2018/07/02 HTML / CSS
H5页面适配iPhoneX(就是那么简单)
2019/12/02 HTML / CSS
英国翻新电子产品购物网站:Tech Trade
2017/12/25 全球购物
几个数据库方面的面试题
2016/07/01 面试题
测控技术与仪器个人求职信范文
2013/12/30 职场文书
迟到检讨书800字
2014/01/13 职场文书
优秀老师事迹材料
2014/02/05 职场文书
2014年小学生教师节演讲稿范文
2014/09/10 职场文书
大专毕业生自我鉴定范文(2篇)
2014/09/27 职场文书
五年级上册复习计划
2015/01/19 职场文书
2015年秋季小学开学典礼主持词
2015/07/16 职场文书
python 判断文件或文件夹是否存在
2022/03/18 Python