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 实现插入排序算法
Jun 05 Python
pytyon 带有重复的全排列
Aug 13 Python
python获取本机外网ip的方法
Apr 15 Python
详解Python的Django框架中manage命令的使用与扩展
Apr 11 Python
Python数据结构与算法之列表(链表,linked list)简单实现
Oct 30 Python
django模板语法学习之include示例详解
Dec 17 Python
Python 数据处理库 pandas 入门教程基本操作
Apr 19 Python
Django 路由系统URLconf的使用
Oct 11 Python
Django发送邮件功能实例详解
Sep 02 Python
python tornado使用流生成图片的例子
Nov 18 Python
python实现交并比IOU教程
Apr 16 Python
如何利用Python动态模拟太阳系运转
Sep 04 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
Zend的MVC机制使用分析(一)
2013/05/02 PHP
file_get_contents("php://input", "r")实例介绍
2013/07/01 PHP
PHP编程计算两个时间段是否有交集的实现方法(不算边界重叠)
2017/05/30 PHP
Laravel中前端js上传图片到七牛云的示例代码
2017/09/04 PHP
JavaScript 实现模态对话框 源代码大全
2009/05/02 Javascript
XMLHTTP 乱码的解决方法(UTF8,GB2312 编码 解码)
2011/01/12 Javascript
深入分析escape()、encodeURI()、encodeURIComponent()的区别及示例
2014/08/04 Javascript
浏览器中url存储的JavaScript实现
2015/07/07 Javascript
使用jquery动态加载Js文件和Css文件
2015/10/24 Javascript
Bootstrap编写导航栏和登陆框
2016/05/30 Javascript
javascript如何定义对象数组
2016/06/07 Javascript
Vue.js事件处理器与表单控件绑定详解
2017/03/20 Javascript
js按条件生成随机json:randomjson实现方法
2017/04/07 Javascript
vue中SPA单页面应用程序详解
2017/11/07 Javascript
详解Angular调试技巧之报错404(not found)
2018/01/31 Javascript
教你用Python脚本快速为iOS10生成图标和截屏
2016/09/22 Python
浅谈终端直接执行py文件,不需要python命令
2017/01/23 Python
python机器学习之神经网络(二)
2017/12/20 Python
python实现NB-IoT模块远程控制
2018/06/20 Python
python中字符串内置函数的用法总结
2018/09/13 Python
Python matplotlib通过plt.scatter画空心圆标记出特定的点方法
2018/12/13 Python
python time.sleep()是睡眠线程还是进程
2019/07/09 Python
selenium2.0中常用的python函数汇总
2019/08/05 Python
使用Fabric自动化部署Django项目的实现
2019/09/27 Python
Python运行DLL文件的方法
2020/01/17 Python
信号生成及DFT的python实现方式
2020/02/25 Python
通过代码实例解析Pytest运行流程
2020/08/20 Python
解决PyCharm IDE环境下,执行unittest不生成测试报告的问题
2020/09/03 Python
Moss Bros官网:英国排名第一的西装店
2020/02/26 全球购物
毕业生的自我鉴定该怎么写
2013/12/02 职场文书
事业单位请假制度
2014/01/13 职场文书
公安领导班子四风问题个人整改措施思想汇报
2014/10/09 职场文书
高中家长意见怎么写
2015/06/03 职场文书
回复函格式及范文
2015/07/14 职场文书
老乡会致辞
2015/07/28 职场文书
Golang 获取文件md5校验的方法以及效率对比
2021/05/08 Golang