python标准日志模块logging的使用方法

yizhihongxing

那我来详细讲解一下python标准日志模块logging的使用方法的完整攻略。

logging模块简介

Python提供了一个标准的日志模块——logging模块,它用于记录信息以便进行调试、错误跟踪以及解决问题等。logging模块提供了标准的记录日志方式,可以把日志记录输出到文件或终端,还可以根据日志等级过滤不同级别的日志信息。

logging模块的基本用法

1.创建Logger对象

Logger对象是logging模块的核心,可以使用Logger对象记录日志。我们需要为应用程序创建一个Logger对象,并设置它的日志等级等参数。可以使用以下代码创建一个Logger对象:

import logging

logger = logging.getLogger('mylogger') # 创建一个Logger对象
logger.setLevel(logging.DEBUG)        # 设置日志级别

上述代码中,我们使用logging.getLogger()方法创建一个名为'mylogger'的Logger对象,并设置日志级别为DEBUG。

2.创建Handler对象

在使用Logger对象记录日志时,需要指定日志记录的输出位置,即log消息发送的目的地。这个目的地可以是标准输出终端、文件、电子邮件等。为了指定目的地,需要创建一个或多个Handler对象。可以使用以下代码创建一个Handle对象:

import logging

logger = logging.getLogger('mylogger') # 创建一个Logger对象
logger.setLevel(logging.DEBUG)        # 设置日志级别

fh = logging.FileHandler('mylog.txt') # 创建一个Handler对象,将日志写入文件
fh.setLevel(logging.INFO)             # 设置Handler对象的日志级别

logger.addHandler(fh)                # 将Handler对象添加到Logger对象

上述代码中,我们使用logging.FileHandler()方法创建一个FileHandler对象,将日志写入到'mylog.txt'文件中,并将FileHandler对象的日志级别设置为INFO。接着,我们使用Logger.addHandler()方法把FileHandler对象添加到Logger对象中。

3. 记录日志

Logger对象有5个方法依次提供了不同级别的日志记录功能:

  • logger.debug():最详细的信息记录,通常只在调试阶段使用
  • logger.info():详细程度仅次于debug记录
  • logger.warning():当某些不期望发生但是不影响程序运行的情况出现时,建议使用warning级别的日志记录
  • logger.error():当程序执行遇到可处理的异常错误时,建议使用error级别的日志记录
  • logger.critical():当程序执行遇到严重错误时,建议使用critical级别的日志记录

可以使用以下代码记录日志:

import logging

logger = logging.getLogger('mylogger') # 创建一个Logger对象
logger.setLevel(logging.DEBUG)        # 设置日志级别

fh = logging.FileHandler('mylog.txt') # 创建一个Handler对象,将日志写入文件
fh.setLevel(logging.INFO)             # 设置Handler对象的日志级别

logger.addHandler(fh)                # 将Handler对象添加到Logger对象

logger.debug('debug message')        # 记录debug级别的日志
logger.info('info message')          # 记录info级别的日志
logger.warning('warning message')    # 记录warning级别的日志
logger.error('error message')        # 记录error级别的日志
logger.critical('critical message')  # 记录critical级别的日志

4.示例说明

示例1:将日志同时输出到文件和终端

import logging

logger = logging.getLogger('mylogger') # 创建一个Logger对象
logger.setLevel(logging.DEBUG)        # 设置日志级别

# 创建一个Handle对象,将日志写入文件
fh = logging.FileHandler('mylog.txt')
fh.setLevel(logging.INFO)

# 创建一个Handle对象,将日志输出到终端
ch = logging.StreamHandler()
ch.setLevel(logging.INFO)

# 配置日志格式
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
fh.setFormatter(formatter)
ch.setFormatter(formatter)

# 将Handle对象添加到Logger对象
logger.addHandler(fh)
logger.addHandler(ch)

# 记录日志
logger.info('这是日志信息')

运行上述代码后,我们在终端和mylog.txt文件中都可以看到日志信息。

示例2:动态调整日志等级

import logging

logger = logging.getLogger('mylogger') # 创建一个Logger对象
logger.setLevel(logging.DEBUG)        # 设置日志级别

# 创建一个Handle对象,将日志输出到终端
ch = logging.StreamHandler(level=logging.WARNING)
ch.setLevel(logging.WARNING)

# 此处先不添加Handle对象

# 记录日志
logger.debug('这是debug信息')
logger.info('这是info信息')
logger.warning('这是warning信息')

# 添加Handle对象
logger.addHandler(ch)

# 再次记录日志
logger.debug('这是debug信息')
logger.info('这是info信息')
logger.warning('这是warning信息')

运行上述代码后,我们可以看到在添加Handler之前,只有warning级别的日志信息被输出。而在添加Handler之后,所有日志信息都被输出到终端。

总结

使用logging模块可以很方便地记录日志信息并方便地进行查看和调试。本文简单介绍了logging模块基本使用方法以及两个示例。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python标准日志模块logging的使用方法 - Python技术站

(0)
上一篇 2023年6月5日
下一篇 2023年6月5日

相关文章

  • python 爬虫一键爬取 淘宝天猫宝贝页面主图颜色图和详情图的教程

    Python爬虫一键爬取淘宝天猫宝贝页面主图颜色图和详情图的教程 本文将详细讲解如何使用Python爬虫一键爬取淘宝天猫宝贝页面的主图颜色图和详情图。我们将使用Python中的requests、BeautifulSoup和urllib库来实现这个功能。 1. 获取宝贝页面的HTML源代码 首先,我们需要获取宝贝页面的HTML源代码。可以使用requests库…

    python 2023年5月15日
    00
  • Python使用itertools模块实现排列组合功能示例

    以下是“Python使用itertools模块实现排列组合功能”的完整攻略。 模块介绍 itertools是Python的标准库之一,提供用于高效利用内存的各种迭代器函数。在处理排列组合问题时,itertools提供的几个函数特别有用,包括: itertools.permutations(iterable, r=None):返回可迭代对象iterable的所…

    python 2023年5月14日
    00
  • Python xlrd excel文件操作代码实例

    下面是关于“Pythonxlrdexcel文件操作代码实例”的完整实例教程: 1. 环境准备 首先,我们需要确保已经安装好了Python和相关的库。本次教程中,我们主要使用的是xlrd库,它可以方便地处理Excel文件。 我们可以通过以下命令安装该库: pip install xlrd 2. 读取Excel文件数据 接下来,让我们来看看如何读取Excel文件…

    python 2023年5月13日
    00
  • Python操作Elasticsearch处理timeout超时

    Python操作Elasticsearch处理timeout超时 什么是timeout超时? 在Elasticsearch操作过程中,如果请求未能在指定的时间内得到响应,则会超时。默认情况下,Elasticsearch使用30秒作为请求超时时间。如果在请求耗时超过30秒则会抛出TimeoutError的异常。 如何处理timeout超时? 为了处理timeo…

    python 2023年6月3日
    00
  • 8个实用的Python程序你知道几个

    8个实用的Python程序你知道几个 本篇文章将介绍8个实用的Python程序,这些程序可以帮助你提高工作效率,节约时间和精力。 1. 爬虫程序 爬虫程序是一种自动爬取网页数据的程序,可以将大量的网页数据快速地获取到本地,以便后续的数据分析、处理、展示等操作。使用Python编写爬虫程序非常容易,只需要使用第三方库如BeautifulSoup和Request…

    python 2023年5月19日
    00
  • Python必备技巧之字符数据操作详解

    Python必备技巧之字符数据操作详解 字符数据类型 在Python中,字符串是一种常见的数据类型。字符串是一个由字符序列组成的不可变序列。因为字符串不可变,因此不能像列表一样进行就地修改。字符串可以使用单引号或双引号来表示。 字符串连接和重复 字符串可以连接起来形成新的字符串。连接操作可以使用+运算符或通过字符串插值完成。例如: str1 = "…

    python 2023年5月14日
    00
  • python不等于运算符的具体使用

    当我们需要判断两个变量是否不相等时,可以使用Python中的“不等于”运算符!=。 具体使用方法如下: 表示不等于的运算符 在Python中,我们可以使用!=来表示“不等于”的运算符。例如: x = 5 y = 10 if x != y: print("x不等于y") 上述代码中,我们定义了两个变量x和y,然后使用“不等于”运算符!=判断…

    python 2023年5月18日
    00
  • python使用xlrd和xlwt读写Excel文件的实例代码

    下面是关于“python使用xlrd和xlwt读写Excel文件的实例代码”的完整实例教程: 简介 在Python中,要读写Excel文件,可以使用xlrd和xlwt这两个常用的第三方库。xlrd用于读取Excel文件,xlwt用于创建和写入Excel文件。 安装 可以使用pip安装这两个库,命令如下: pip install xlrd xlwt 读取Exc…

    python 2023年5月13日
    00
合作推广
合作推广
分享本页
返回顶部