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 文件夹遍历和文件查找的实例讲解
Apr 26 Python
python 统计一个列表当中的每一个元素出现了多少次的方法
Nov 14 Python
Python3.5集合及其常见运算实例详解
May 01 Python
基于python if 判断选择结构的实例详解
May 06 Python
Pyqt5 基本界面组件之inputDialog的使用
Jun 25 Python
详解如何从TensorFlow的mnist数据集导出手写体数字图片
Aug 05 Python
PyQt5通信机制 信号与槽详解
Aug 07 Python
python 怎样将dataframe中的字符串日期转化为日期的方法
Sep 26 Python
构建高效的python requests长连接池详解
May 02 Python
Pycharm安装第三方库失败解决方案
Nov 17 Python
基于注解实现 SpringBoot 接口防刷的方法
Mar 02 Python
pandas中关于apply+lambda的应用
Feb 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的控制语句
2006/10/09 PHP
nginx+php-fpm配置文件的组织结构介绍
2012/11/07 PHP
10个实用的PHP正则表达式汇总
2014/10/23 PHP
用 Composer构建自己的 PHP 框架之构建路由
2014/10/30 PHP
详解PHP中的mb_detect_encoding函数使用方法
2015/08/18 PHP
PHP三种方式实现链式操作详解
2017/01/21 PHP
基于PHP实现堆排序原理及实例详解
2020/06/19 PHP
JavaScript中的Array对象使用说明
2011/01/17 Javascript
ToolTips JQEURY插件之简洁小提示框效果
2011/11/19 Javascript
javascript获取作用在元素上面的样式属性代码
2012/09/20 Javascript
Javascript操作cookie的函数代码
2012/10/03 Javascript
js中的push和join方法使用介绍
2013/10/08 Javascript
深入理解JavaScript系列(41):设计模式之模板方法详解
2015/03/04 Javascript
jQuery实现自动滚动到页面顶端的方法
2015/05/22 Javascript
学习JavaScript设计模式之状态模式
2016/01/08 Javascript
全面了解JavaScirpt 的垃圾(garbage collection)回收机制
2016/07/11 Javascript
bootstrap 模态框(modal)实现水平垂直居中显示
2017/01/23 Javascript
详解vue2.0的Element UI的表格table列时间戳格式化
2017/06/13 Javascript
如何开发出更好的JavaScript模块
2017/12/22 Javascript
浅谈javascript中的prototype和__proto__的理解
2019/04/07 Javascript
详解从0开始搭建微信小程序(前后端)的全过程
2019/04/15 Javascript
判断JavaScript中的两个变量是否相等的操作符
2019/12/21 Javascript
详解Python的循环结构知识点
2019/05/20 Python
python中的itertools的使用详解
2020/01/13 Python
Python post请求实现代码实例
2020/02/28 Python
俄罗斯旅游网站:Tripadvisor俄罗斯
2017/03/21 全球购物
阿迪达斯荷兰官方网站:adidas荷兰
2018/03/16 全球购物
俄罗斯品牌服装在线商店:VIPAVENUE
2020/08/10 全球购物
财务出纳员岗位职责
2013/11/26 职场文书
快餐店的创业计划书范文
2014/01/29 职场文书
数控专业个人求职信范文
2014/02/05 职场文书
职工趣味运动会方案
2014/02/10 职场文书
艾滋病宣传标语
2014/06/25 职场文书
中国文明网向国旗敬礼寄语大全
2014/09/27 职场文书
实习单位指导教师评语
2014/12/30 职场文书
签订劳动合同通知书
2015/04/16 职场文书