logging基本用法

前言

博主目前只接触到了简单用法,本文只记录了logging的基本用法,不常用的则暂时忽略。待以后用到更高级的用法时再学习和记录。

参考资料:

logging的基本使用教程

logging — Python 的日志记录工具(官方文档)

1万字详解 python logging日志模块

一、logging基本用法示例

由于一个简单的例子能够让人更快地掌握基本用法,所以我个人比较喜欢先记录最基本的最常用的用法。等简单的学会了,再慢慢探索更高级的用法。

1.导入模块

import logging

2.设置基本配置

logging.basicConfig(level=logging.INFO)

level=logging.INFO 表示记录所有级别高于或等于 INFO 的日志信息

3.记录日志

logging.info('This is an info message')

二、日志级别

Python logging 模块提供了多种日志级别,每个级别用于表示不同严重程度的日志消息。以下是所有日志级别,从最低到最高:

1.DEBUG

数值:10
描述:用于诊断问题时详细的信息。通常只有在诊断问题时才会记录这些信息。
使用示例:logging.debug(‘This is a debug message’)

2.INFO

数值:20
描述:确认一切正常的运行信息。通常用来记录程序的正常运行过程中的关键步骤。
使用示例:logging.info(‘This is an info message’)

3.WARNING

数值:30
描述:提示可能发生的问题,程序仍能正常运行。用来记录程序运行中的一些潜在问题。
使用示例:logging.warning(‘This is a warning message’)

4.ERROR

数值:40
描述:记录发生的错误,程序可能无法继续运行。用来记录由于某个问题导致程序无法执行某些功能。
使用示例:logging.error(‘This is an error message’)

5.CRITICAL

数值:50
描述:记录严重错误,程序无法继续运行。用来记录导致程序终止的严重问题。
使用示例:logging.critical(‘This is a critical message’)

6.示例

使用 basicConfig 方法可以设置日志记录的最低级别。只有级别高于或等于设置级别的日志信息才会被记录。

以下例子中,level=logging.INFO 表示只记录 INFO 级别及以上的日志信息,因此 DEBUG 级别的消息不会被记录。

import logging

logging.basicConfig(level=logging.INFO)

logging.debug('This is a debug message')     # 不会被记录
logging.info('This is an info message')      # 会被记录
logging.warning('This is a warning message') # 会被记录
logging.error('This is an error message')    # 会被记录
logging.critical('This is a critical message') # 会被记录

7.自定义日志级别

在下面的例子中,通过 addLevelName 方法添加自定义日志级别,并定义一个方法 custom 以便使用该日志级别。在示例中,CUSTOM_LEVEL 被设置为 25,介于 INFO 和 WARNING 之间。

import logging

# 定义自定义日志级别
CUSTOM_LEVEL = 25
logging.addLevelName(CUSTOM_LEVEL, 'CUSTOM')

# 定义自定义日志记录方法
def custom(self, message, *args, **kws):
    if self.isEnabledFor(CUSTOM_LEVEL):
        self._log(CUSTOM_LEVEL, message, args, **kws)

# 将自定义方法添加到 Logger 类
logging.Logger.custom = custom

# 获取 Logger 实例并设置日志级别
logger = logging.getLogger(__name__)
logger.setLevel(CUSTOM_LEVEL)

# 使用自定义日志级别记录消息
logger.custom('This is a custom level message')

三、将日志记录到文件

在basicConfig中加上filename参数

import logging
logging.basicConfig(filename="test.log", level=logging.INFO)
logging.debug("this is debug")
logging.info("this is info")
logging.error("this is error")

四、设置格式

默认输出的格式包含3部分,日志级别、日志记录器的名字、以及日志内容,中间用“:”连接。 如果我们想改变日志格式,例如想加入日期时间、显示日志器名字,我们是可以用format参数来设置日志的格式

import logging
logging.basicConfig(format='%(asctime)s %(levelname)s %(name)s %(message)s')
logging.error("this is error")

输出:
2024-7-18 21:08:12,547 ERROR root this is error

以下为格式及其属性:

在这里插入图片描述

五、logger(暂时不做介绍)

  • 15
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Python logging模块是一个非常强大的日志记录模块,可以帮助你记录程序运行时产生的各种日志信息。下面是Python logging的一些用法: #### 1. 基本用法 使用Python logging基本的方法是使用`logging`模块中的`basicConfig()`方法,来配置日志记录器的格式和级别: ```python import logging logging.basicConfig(level=logging.DEBUG, format='%(asctime)s %(levelname)s:%(message)s') ``` 在这个例子中,我们指定了日志记录器的级别为DEBUG,格式为`%(asctime)s %(levelname)s:%(message)s`。使用`basicConfig()`方法只需要在程序开始时调用一次即可。 如果你想记录某一级别以上的日志信息,可以将`level`参数设置为相应级别,例如`logging.WARNING`、`logging.ERROR`等。 #### 2. 记录日志 使用Python logging模块记录日志非常简单,只需要调用相应级别的方法即可,例如: ```python logging.debug('Debugging information') logging.info('Informational message') logging.warning('Warning') logging.error('Error occurred') logging.critical('Critical error') ``` #### 3. 使用不同的日志记录器 在一个Python程序中,你可以使用不同的日志记录器来记录不同的日志信息。例如,你可以为某一个模块或者某一部分程序代码使用一个独立的日志记录器,这样可以更好地管理日志信息。 ```python import logging logger1 = logging.getLogger('module1') logger2 = logging.getLogger('module2') logger1.debug('Debugging information') logger2.error('Error occurred') ``` 在这个例子中,我们为两个不同的模块创建了两个不同的日志记录器,分别是`logger1`和`logger2`。然后,我们分别使用这两个日志记录器来记录不同的日志信息。 #### 4. 日志输出到文件 除了将日志输出到控制台,你还可以将日志输出到文件中。使用Python logging模块输出日志到文件也非常简单,只需要将`basicConfig()`方法中的`filename`参数设置为你想要输出日志的文件名即可: ```python import logging logging.basicConfig(filename='example.log', level=logging.DEBUG, format='%(asctime)s %(levelname)s:%(message)s') logging.debug('Debugging information') ``` 在这个例子中,我们将日志输出到了名为`example.log`的文件中。 #### 5. 记录异常信息 当程序遇到异常时,你可以使用Python logging模块来记录异常信息,例如: ```python import logging try: # 这里是你的程序代码 pass except Exception as e: logging.exception("Exception occurred") ``` 在这个例子中,我们使用`logging.exception()`方法来记录异常信息,这个方法会记录完整的异常堆栈信息,非常方便排查问题。 #### 6. 使用日志回滚 当日志文件变得过大时,你可能需要使用日志回滚来分割日志文件。Python logging模块提供了多种日志回滚方式,例如按文件大小回滚、按时间回滚等。 ```python import logging from logging.handlers import RotatingFileHandler handler = RotatingFileHandler('example.log', maxBytes=10000, backupCount=5) logging.basicConfig(level=logging.DEBUG, format='%(asctime)s %(levelname)s:%(message)s', handlers=[handler]) ``` 在这个例子中,我们使用`RotatingFileHandler`来实现按文件大小回滚日志。`maxBytes`参数指定了每个日志文件的最大大小(这里是10KB),`backupCount`参数指定了最多保存多少个回滚日志文件(这里是5个)。 #### 7. 配置日志记录器 你可以使用Python logging模块中的`Logger`类来创建和配置日志记录器,例如: ```python import logging logger = logging.getLogger('my_logger') logger.setLevel(logging.DEBUG) formatter = logging.Formatter('%(asctime)s %(levelname)s:%(message)s') file_handler = logging.FileHandler('my.log') file_handler.setFormatter(formatter) logger.addHandler(file_handler) logger.debug('Debugging information') ``` 在这个例子中,我们使用`getLogger()`方法创建了一个名为`my_logger`的日志记录器,然后通过`setLevel()`方法来设置日志记录器的级别为DEBUG。接着,我们使用`Formatter`类来定义日志的格式,然后创建了一个`FileHandler`来将日志输出到`my.log`文件中,并使用`setFormatter()`方法来设置日志的格式。最后,我们使用`addHandler()`方法将`FileHandler`添加到`my_logger`日志记录器中,从而实现了将日志输出到文件中。 以上就是Python logging模块的一些基本用法,你可以根据需要来选择和使用相应的方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云霄星乖乖的果冻

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值