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系列之新版本导入httplib模块报ImportError解决方案
May 23 Python
Python实现类的创建与使用方法示例
Jul 25 Python
Python设计模式之职责链模式原理与用法实例分析
Jan 11 Python
python flask安装和命令详解
Apr 02 Python
django项目中使用手机号登录的实例代码
Aug 15 Python
python多线程实现TCP服务端
Sep 03 Python
基于Python实现船舶的MMSI的获取(推荐)
Oct 21 Python
django 数据库 get_or_create函数返回值是tuple的问题
May 15 Python
Django之腾讯云短信的实现
Jun 12 Python
python给视频添加背景音乐并改变音量的具体方法
Jul 19 Python
浅谈matplotlib默认字体设置探索
Feb 03 Python
Python实现科学占卜 让视频自动打码
Apr 09 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
解密ThinkPHP3.1.2版本之模板继承
2014/06/19 PHP
php实现过滤UBB代码的类
2015/03/12 PHP
制作高质量的JQuery Plugin 插件的方法
2010/04/20 Javascript
基于jquery实现的一个选择中国大学的弹框 (数据、步骤、代码)
2012/07/26 Javascript
自己写了一个展开和收起的多更能型的js效果
2013/03/05 Javascript
jquery删除ID为sNews的tr元素的内容
2014/04/10 Javascript
javascript常用的方法分享
2015/07/01 Javascript
jQuery实现Select左右复制移动内容
2016/08/05 Javascript
JS实现显示带倒影的图片横排居中放大展示特效实例【测试可用】
2016/08/23 Javascript
arcgis for js 修改infowindow样式的方法
2016/11/02 Javascript
jquery之基本选择器practice(实例讲解)
2017/09/30 jQuery
JQuery选中select组件被选中的值方法
2018/03/08 jQuery
解决vue router组件状态刷新消失的问题
2018/08/01 Javascript
vue下拉菜单组件(含搜索)的实现代码
2018/11/25 Javascript
js时间戳转yyyy-MM-dd HH-mm-ss工具类详解
2019/04/30 Javascript
jQuery实现input[type=file]多图预览上传删除等功能
2019/08/02 jQuery
JS实现页面数据懒加载
2020/02/13 Javascript
[50:29]2014 DOTA2华西杯精英邀请赛 5 24 DK VS iG
2014/05/26 DOTA
python读取word文档的方法
2015/05/09 Python
用Eclipse写python程序
2018/02/10 Python
对pandas replace函数的使用方法小结
2018/05/18 Python
Python基于scipy实现信号滤波功能
2019/05/08 Python
python实现五子棋小程序
2019/06/18 Python
Django 源码WSGI剖析过程详解
2019/08/05 Python
Python 根据日志级别打印不同颜色的日志的方法示例
2019/08/08 Python
python海龟绘图之画国旗实例代码
2020/11/11 Python
纯CSS打造(无图像无js)的非常流行的讲话(语音)气泡效果
2012/12/28 HTML / CSS
亲属关系公证书样本
2015/01/23 职场文书
租赁协议书
2015/01/27 职场文书
2015年母亲节活动策划方案
2015/05/04 职场文书
教师纪律作风整顿心得体会
2016/01/23 职场文书
学习师德师风的心得体会(2篇)
2019/10/08 职场文书
Python 正则模块详情
2021/11/02 Python
Javascript webpack动态import
2022/04/19 Javascript
生命的关键成分来自太空?陨石说是的
2022/04/29 数码科技
Apache SeaTunnel实现 非CDC数据抽取
2022/05/20 Servers