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 translator使用实例
Sep 06 Python
Python的Django框架中模板碎片缓存简介
Jul 24 Python
python executemany的使用及注意事项
Mar 13 Python
深入浅析Python2.x和3.x版本的主要区别
Nov 30 Python
python3对拉勾数据进行可视化分析的方法详解
Apr 03 Python
python pillow模块使用方法详解
Aug 30 Python
python中enumerate() 与zip()函数的使用比较实例分析
Sep 03 Python
如何修复使用 Python ORM 工具 SQLAlchemy 时的常见陷阱
Nov 19 Python
Flask框架搭建虚拟环境的步骤分析
Dec 21 Python
Python while循环使用else语句代码实例
Feb 07 Python
python 遗传算法求函数极值的实现代码
Feb 11 Python
aws 通过boto3 python脚本打pach的实现方法
May 10 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
全国FM电台频率大全 - 1 北京市
2020/03/11 无线电
将酷狗krc歌词解析并转换为lrc歌词php源码
2014/06/20 PHP
php实现粘贴截图并完成上传功能
2015/05/17 PHP
php使用gzip压缩传输js和css文件的方法
2015/07/29 PHP
php制作简单模版引擎
2016/04/07 PHP
JS类库Bindows1.3中的内存释放方式分析
2007/03/08 Javascript
javascript 学习笔记(六)浏览器类型及版本信息检测代码
2011/04/08 Javascript
js显示文本框提示文字的方法
2015/05/07 Javascript
JavaScript实现对下拉列表值进行排序的方法
2015/07/15 Javascript
Seajs 简易文档 提供简单、极致的模块化开发体验
2016/04/13 Javascript
javascript实现鼠标点击页面 移动DIV
2016/12/02 Javascript
jquery实现图片上传前本地预览
2017/04/28 jQuery
jquery基于layui实现二级联动下拉选择(省份城市选择)
2017/06/20 jQuery
jQuery获取所有父级元素及同级元素及子元素的方法(推荐)
2018/01/21 jQuery
JS简单生成由字母数字组合随机字符串示例
2018/05/25 Javascript
关于vue v-for 循环问题(一行显示四个,每一行的最右边那个计算属性)
2018/09/04 Javascript
对python 判断数字是否小于0的方法详解
2019/01/26 Python
Python进阶之@property动态属性的实现
2019/04/01 Python
python实现一行输入多个值和一行输出多个值的例子
2019/07/16 Python
django 微信网页授权登陆的实现
2019/07/30 Python
Python pandas用法最全整理
2019/08/04 Python
利用python中集合的唯一性实现去重
2020/02/11 Python
django restframework serializer 增加自定义字段操作
2020/07/15 Python
Python切片列表字符串如何实现切换
2020/08/06 Python
使用pandas实现筛选出指定列值所对应的行
2020/12/13 Python
加拿大当代时尚服饰、配饰和鞋类专业零售商和制造商:LE CHÂTEAU
2017/10/06 全球购物
Feelunique美国:欧洲大型的在线美妆零售电商
2018/11/04 全球购物
三星加拿大官方网上商店:Samsung CA
2020/12/18 全球购物
高一地理教学反思
2014/01/18 职场文书
私营公司诉讼代理委托书范本
2014/09/13 职场文书
党的群众路线教育实践活动个人自我剖析材料
2014/10/07 职场文书
2015新学期校长寄语(3篇)
2015/03/25 职场文书
MBA推荐信怎么写
2015/03/25 职场文书
大学运动会通讯稿
2015/07/18 职场文书
Vite + React从零开始搭建一个开源组件库
2022/06/25 Javascript
Win11怎么添加用户?Win11添加用户账户的方法
2022/07/15 数码科技