脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Python - Python 中 logging 模块使用详情

Python 中 logging 模块使用详情

2022-10-21 11:05Python学习与数据挖掘 Python

这篇文章主要介绍了 Python 中 logging 模块使用,在我们写程序时,可以借助 logging 模块的输出信息来调试代码,下文章关于 logging 模块的使用相关内容,需要的小伙伴可以参考一下

1.为什么要用logging模块

在实际应用中,日志文件十分重要,通过日志文件,我们知道程序运行的细节;同时,当程序出问题时,我们也可以通过日志快速定位问题所在。在我们写程序时,也可以借助 logging 模块的输出信息来调试代码。

但是很多人还是在程序中使用print()函数来输出一些信息,比如:

?
1
2
3
4
5
6
print 'Start reading database'
records = model.read_recrods()
print '# records', records
print 'Updating record ...'
model.update_records(records)
print 'done'

这样用的话缺点很明显,当程序写好运行时,我们要把这些print()函数删掉,在简单的的程序中用还行,当程序比较复杂时,这个办法很低效。

如果使用logging模块,看看效果

?
1
2
3
4
5
6
7
8
9
10
11
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')

运行结果如下:

?
1
2
3
INFO:__main__:Start reading database
INFO:__main__:Updating records ...
INFO:__main__:Finish updating records

你也许会问,这和print()函数有什么区别呢?区别就在于,logging模块可以通过改变level来控制一些语句是否被输出,比如当我们把level改成DEBUG级别:

?
1
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,可以输出我们想要的格式,比如:

?
1
2
3
4
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 模块使用内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/weixin_38037405/article/details/121859354

延伸 · 阅读

精彩推荐
  • Python使用Python 正则匹配两个特定字符之间的字符方法

    使用Python 正则匹配两个特定字符之间的字符方法

    今天小编就为大家分享一篇使用Python 正则匹配两个特定字符之间的字符方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    望那伊人12182021-05-07
  • PythonPython爬虫动态ip代理防止被封的方法

    Python爬虫动态ip代理防止被封的方法

    在本篇文章中小编给大家整理了关于Python爬虫动态ip代理防止被封的方法以及实例代码,需要的朋友们学习下。...

    撒撒撒windy4882021-08-03
  • Pythonnp.dot()函数的用法详解

    np.dot()函数的用法详解

    这篇文章主要介绍了np.dot()函数的用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着...

    100yes00161372020-04-17
  • PythonPython实现从百度API获取天气的方法

    Python实现从百度API获取天气的方法

    这篇文章主要介绍了Python实现从百度API获取天气的方法,实例分析了Python操作百度API的技巧,具有一定参考借鉴价值,需要的朋友可以参考下 ...

    saintatgod10062019-11-26
  • PythonPython hashlib模块详情

    Python hashlib模块详情

    本文,我们来对Python 提供的安全哈希算法的通用接口-hashlib模块进行学习,文章内容具有一定的参考价值,需要的小伙伴可以参考一下...

    盆友圈的小可爱6592022-03-10
  • Pythonpython中assert用法实例分析

    python中assert用法实例分析

    这篇文章主要介绍了python中assert用法,实例分析了assert的功能及相关使用技巧,非常具有实用价值,需要的朋友可以参考下...

    露露2782020-06-19
  • PythonPython pymysql操作MySQL详细

    Python pymysql操作MySQL详细

    pymysql是Python3.x中操作MySQL数据库的模块,其兼容于MySQLdb,使用方法也与MySQLdb几乎相同,但是性能不如MySQLdb,但是由于其安装使用方便、对中文兼容性也更...

    tigeriaf7872022-01-11
  • PythonCentOS下使用yum安装python-pip失败的完美解决方法

    CentOS下使用yum安装python-pip失败的完美解决方法

    这篇文章主要介绍了CentOS下使用yum安装python-pip失败的完美解决方法,需要的朋友可以参考下...

    wosicuanqi7392020-12-02