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装饰器使用方法实例
Nov 21 Python
python控制台显示时钟的示例
Feb 24 Python
python的dict,set,list,tuple应用详解
Jul 24 Python
Python文件和流(实例讲解)
Sep 12 Python
关于Django显示时间你应该知道的一些问题
Dec 25 Python
Python+OpenCV目标跟踪实现基本的运动检测
Jul 10 Python
Python英文文本分词(无空格)模块wordninja的使用实例
Feb 20 Python
Python中Numpy ndarray的使用详解
May 24 Python
3行Python代码实现图像照片抠图和换底色的方法
Oct 10 Python
Python+Appium实现自动化测试的使用步骤
Mar 24 Python
Python将字典转换为XML的方法
Aug 01 Python
Django项目如何正确配置日志(logging)
Apr 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
SONY SRF-M100的电路分析
2021/03/02 无线电
理解PHP5中static和const关键字的区别
2007/03/19 PHP
PHP伪静态页面函数附使用方法
2008/06/20 PHP
PHP 字符串编码截取函数(兼容utf-8和gb2312)
2009/05/02 PHP
5种PHP创建数组的实例代码分享
2014/01/17 PHP
PHP设计模式之抽象工厂模式实例分析
2019/03/25 PHP
JavaScript 构造函数 面相对象学习必备知识
2010/06/09 Javascript
jQuery源码分析-01总体架构分析
2011/11/14 Javascript
jQuery实现用户注册的表单验证示例
2013/08/28 Javascript
js操作label给label赋值及取label的值示例
2013/11/07 Javascript
javascript history对象(历史记录)使用方法(实现浏览器前进后退)
2014/01/07 Javascript
javascript for-in有序遍历json数据并探讨各个浏览器差异
2015/11/30 Javascript
深入理解JavaScript程序中内存泄漏
2016/03/17 Javascript
javascript类型系统——undefined和null全面了解
2016/07/13 Javascript
JavaScript实现页面定时刷新(定时器,meta)
2016/10/12 Javascript
基于bootstrap-datetimepicker.js不支持IE8的快速解决方法
2016/11/07 Javascript
基于ES6 Array.of的用法(实例讲解)
2017/09/05 Javascript
解决jquery appaend元素中id绑定事件失效的问题
2017/09/12 jQuery
详解10分钟学会vue滚动行为
2017/09/21 Javascript
uni-app实现获取验证码倒计时功能
2020/11/01 Javascript
[01:59]深扒TI7聊天轮盘语音出处 1
2017/05/11 DOTA
pandas把dataframe转成Series,改变列中值的类型方法
2018/04/10 Python
python使用多进程的实例详解
2018/09/19 Python
Python根据成绩分析系统浅析
2019/02/11 Python
Python3 导入上级目录中的模块实例
2019/02/16 Python
Pyqt5 基本界面组件之inputDialog的使用
2019/06/25 Python
伦敦一家非常流行的时尚精品店:Oxygen Boutique
2017/01/15 全球购物
FOREO斐珞尔官方旗舰店:LUNA露娜洁面仪
2018/03/11 全球购物
运动会广播稿200字
2014/01/15 职场文书
行政文秘岗位职责范本
2014/02/10 职场文书
大型会议接待方案
2014/03/01 职场文书
单位承诺书格式
2014/05/21 职场文书
2014党员四风对照检查材料思想汇报
2014/09/17 职场文书
2015年美容师个人工作总结
2015/10/14 职场文书
Python3中最常用的5种线程锁实例总结
2021/07/07 Python
windows10 家庭版下FTP服务器搭建教程
2022/08/05 Servers