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入门及进阶笔记 Python 内置函数小结
Aug 09 Python
Python+matplotlib绘制不同大小和颜色散点图实例
Jan 19 Python
python 矩阵增加一行或一列的实例
Apr 04 Python
Python3转换html到pdf的不同解决方案
Mar 11 Python
python代码编写计算器小程序
Mar 30 Python
利用Python绘制Jazz网络图的例子
Nov 21 Python
TensorFlow实现从txt文件读取数据
Feb 05 Python
python+selenium+Chrome options参数的使用
Mar 18 Python
Python任务调度利器之APScheduler详解
Apr 02 Python
详解在Python中使用Torchmoji将文本转换为表情符号
Jul 27 Python
用Python进行栅格数据的分区统计和批量提取
May 27 Python
Pytorch中的学习率衰减及其用法详解
Jun 05 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下获取Discuz论坛登录用户名、用户组、用户ID等信息的实现代码
2010/12/29 PHP
php开发过程中关于继承的使用方法分享
2011/06/17 PHP
PHP面向对象程序设计组合模式与装饰模式详解
2016/12/02 PHP
PHP-CGI远程代码执行漏洞分析与防范
2017/05/07 PHP
PHP7 echo和print语句实例用法
2019/02/15 PHP
用js实现计算加载页面所用的时间
2010/04/02 Javascript
jquery ajax跨域解决方法(json方式)
2014/02/04 Javascript
JS数字抽奖游戏实现方法
2015/05/04 Javascript
jquery 中ajax执行的优先级
2015/06/22 Javascript
JQuery自适应窗口大小导航菜单附源码下载
2015/09/01 Javascript
给before和after伪元素设置js效果的方法
2015/12/04 Javascript
JS简单测试循环运行时间的方法
2016/09/04 Javascript
JS多文件上传的实例代码
2017/01/11 Javascript
利用pm2部署多个node.js项目的配置教程
2017/10/22 Javascript
Angular实现的简单定时器功能示例
2017/12/28 Javascript
浅谈react-router HashRouter和BrowserRouter的使用
2017/12/29 Javascript
Vue递归组件+Vuex开发树形组件Tree--递归组件的简单实现
2019/04/01 Javascript
使用vue-router在Vue页面之间传递数据的方法
2019/07/15 Javascript
jQuery 淡入/淡出效果函数用法分析
2020/05/19 jQuery
JS实现炫酷雪花飘落效果
2020/08/19 Javascript
selenium 反爬虫之跳过淘宝滑块验证功能的实现代码
2020/08/27 Javascript
浅谈Python中用datetime包进行对时间的一些操作
2016/06/23 Python
python 实现12bit灰度图像映射到8bit显示的方法
2019/07/08 Python
Python使用get_text()方法从大段html中提取文本的实例
2019/08/27 Python
python 申请内存空间,用于创建多维数组的实例
2019/12/02 Python
Python通过getattr函数获取对象的属性值
2020/10/16 Python
python+selenium+chrome实现淘宝购物车秒杀自动结算
2021/01/07 Python
css3强大的动画效果animate使用说明及浏览器兼容介绍
2013/01/09 HTML / CSS
印尼美容产品购物网站:PerfectBeauty.id
2017/12/01 全球购物
Coggles美国/加拿大:高级国际时装零售商
2018/10/23 全球购物
美国狗旅行和户外用品领先供应商:kurgo
2020/08/18 全球购物
大学生个人总结的自我评价
2013/10/05 职场文书
电气专业推荐信范文
2013/11/18 职场文书
2016年员工政治思想表现评语
2015/12/02 职场文书
解析MySQL binlog
2021/06/11 MySQL
Mysql关于数据库是否应该使用外键约束详解说明
2021/10/24 MySQL