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函数中的函数(闭包)用法实例
Mar 15 Python
利用python程序生成word和PDF文档的方法
Feb 14 Python
Python实现SSH远程登陆,并执行命令的方法(分享)
May 08 Python
Python中字典的浅拷贝与深拷贝用法实例分析
Jan 02 Python
用python一行代码得到数组中某个元素的个数方法
Jan 28 Python
Python的log日志功能及设置方法
Jul 11 Python
python使用if语句实现一个猜拳游戏详解
Aug 27 Python
使用keras内置的模型进行图片预测实例
Jun 17 Python
Python pexpect模块及shell脚本except原理解析
Aug 03 Python
python/golang实现循环链表的示例代码
Sep 14 Python
python re的findall和finditer的区别详解
Nov 15 Python
用python批量下载apk
Dec 29 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不使用插件导出excel的简单方法
2014/03/04 PHP
php格式化电话号码的方法
2015/04/24 PHP
php实现的中秋博饼游戏之绘制骰子图案功能示例
2017/11/06 PHP
在Laravel中实现使用AJAX动态刷新部分页面
2019/10/15 PHP
PHP正则之正向预查与反向预查讲解与实例
2020/04/06 PHP
js特效,页面下雪的小例子
2013/06/17 Javascript
JavaScript 数组详解
2013/10/10 Javascript
JS和函数式语言的三特性
2014/03/05 Javascript
JavaScript利用构造函数和原型的方式模拟C#类的功能
2014/03/06 Javascript
javascript强制点击广告的方法
2015/02/06 Javascript
jQuery匹配文档链接并添加class的方法
2015/06/26 Javascript
JS延时器提示框的应用实例代码解析
2016/04/27 Javascript
jQuery+CSS3+Html5实现弹出层效果实例代码(附源码下载)
2016/05/16 Javascript
Three.js利用性能插件stats实现性能监听的方法
2017/09/25 Javascript
layui radio性别单选框赋值方法
2018/08/15 Javascript
vue使用微信扫一扫功能的实现代码
2020/04/11 Javascript
vue 基于abstract 路由模式 实现页面内嵌的示例代码
2020/12/14 Vue.js
python机器学习实战之最近邻kNN分类器
2017/12/20 Python
python3.4爬虫demo
2019/01/22 Python
详解Python 爬取13个旅游城市,告诉你五一大家最爱去哪玩?
2019/05/07 Python
pytorch三层全连接层实现手写字母识别方式
2020/01/14 Python
Python range与enumerate函数区别解析
2020/02/28 Python
极简的HTML5模版
2015/07/09 HTML / CSS
HTML5页面直接调用百度地图API获取当前位置直接导航目的地的实现代码
2018/03/02 HTML / CSS
Sunglasses Shop丹麦:欧洲第一的太阳镜在线销售网站
2017/10/22 全球购物
澳大利亚波希米亚风时尚品牌:Tree of Life
2019/09/15 全球购物
党员的自我评价范文
2014/01/02 职场文书
高级销售求职信
2014/02/21 职场文书
党建目标管理责任书
2014/07/25 职场文书
试用期转正员工自我评价
2014/09/18 职场文书
2014幼儿园小班工作总结
2014/11/10 职场文书
大学生年度个人总结
2015/02/15 职场文书
首都博物馆观后感
2015/06/05 职场文书
宝宝满月宴答谢词
2015/09/30 职场文书
如何解决php-fpm启动不了问题
2021/11/17 PHP
HTTP中的Content-type详解
2022/01/18 HTML / CSS