Python日志模块logging如何使用

发布时间:2022-05-24 17:56:21 作者:iii
来源:亿速云 阅读:247

Python日志模块logging如何使用

在Python开发中,日志记录是一个非常重要的功能。它可以帮助开发者追踪程序的执行过程,记录错误信息,以及监控应用程序的运行状态。Python标准库中的logging模块提供了强大的日志记录功能,可以满足大多数应用场景的需求。本文将详细介绍如何使用logging模块进行日志记录。

1. 基本使用

1.1 导入logging模块

首先,我们需要导入logging模块:

import logging

1.2 配置日志记录

logging模块提供了多种方式来配置日志记录。最简单的方式是使用basicConfig()函数进行基本配置:

logging.basicConfig(level=logging.DEBUG, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')

1.3 记录日志

配置完成后,我们可以使用logging模块提供的不同级别的日志记录函数来记录日志:

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')

1.4 输出结果

运行上述代码后,日志信息将输出到控制台:

2023-10-01 12:00:00,000 - root - DEBUG - This is a debug message
2023-10-01 12:00:00,001 - root - INFO - This is an info message
2023-10-01 12:00:00,002 - root - WARNING - This is a warning message
2023-10-01 12:00:00,003 - root - ERROR - This is an error message
2023-10-01 12:00:00,004 - root - CRITICAL - This is a critical message

2. 高级配置

2.1 日志记录器

logging模块允许我们创建多个日志记录器(Logger),每个记录器可以有不同的配置。我们可以通过logging.getLogger()函数来获取或创建一个日志记录器:

logger = logging.getLogger('my_logger')
logger.setLevel(logging.DEBUG)

2.2 处理器(Handler)

处理器用于将日志记录发送到不同的目的地,如控制台、文件、网络等。常见的处理器有StreamHandler(输出到控制台)和FileHandler(输出到文件):

# 创建一个文件处理器
file_handler = logging.FileHandler('my_log.log')
file_handler.setLevel(logging.DEBUG)

# 创建一个控制台处理器
console_handler = logging.StreamHandler()
console_handler.setLevel(logging.INFO)

# 设置处理器的格式
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
file_handler.setFormatter(formatter)
console_handler.setFormatter(formatter)

# 将处理器添加到日志记录器
logger.addHandler(file_handler)
logger.addHandler(console_handler)

2.3 过滤器(Filter)

过滤器用于对日志记录进行过滤,只有满足条件的日志记录才会被处理。我们可以通过继承logging.Filter类来创建自定义过滤器:

class MyFilter(logging.Filter):
    def filter(self, record):
        return record.levelno == logging.ERROR

# 添加过滤器
logger.addFilter(MyFilter())

2.4 日志记录

配置完成后,我们可以使用日志记录器来记录日志:

logger.debug('This is a debug message')
logger.info('This is an info message')
logger.warning('This is a warning message')
logger.error('This is an error message')
logger.critical('This is a critical message')

2.5 输出结果

日志信息将同时输出到控制台和文件中。控制台只显示INFO级别及以上的日志,而文件中记录所有级别的日志。

3. 日志轮转

在实际应用中,日志文件可能会变得非常大。logging模块提供了RotatingFileHandlerTimedRotatingFileHandler来实现日志文件的轮转。

3.1 RotatingFileHandler

RotatingFileHandler根据文件大小进行轮转:

from logging.handlers import RotatingFileHandler

# 创建一个RotatingFileHandler,最大文件大小为1MB,最多保留3个备份文件
rotating_handler = RotatingFileHandler('my_log.log', maxBytes=1*1024*1024, backupCount=3)
rotating_handler.setLevel(logging.DEBUG)
rotating_handler.setFormatter(formatter)

logger.addHandler(rotating_handler)

3.2 TimedRotatingFileHandler

TimedRotatingFileHandler根据时间进行轮转:

from logging.handlers import TimedRotatingFileHandler

# 创建一个TimedRotatingFileHandler,每天轮转一次,最多保留7个备份文件
timed_handler = TimedRotatingFileHandler('my_log.log', when='midnight', interval=1, backupCount=7)
timed_handler.setLevel(logging.DEBUG)
timed_handler.setFormatter(formatter)

logger.addHandler(timed_handler)

4. 总结

logging模块是Python中非常强大的日志记录工具,通过合理的配置,可以满足各种复杂的日志记录需求。本文介绍了logging模块的基本使用、高级配置以及日志轮转功能。希望这些内容能帮助你在实际项目中更好地使用logging模块进行日志记录。

推荐阅读:
  1. Python 之 logging日志模块
  2. 如何使用Python日志处理模块logging

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

python logging

上一篇:vue-cli创建项目时由esLint校验导致报错或警告怎么解决

下一篇:Python密码学XOR算法编码流程及乘法密码实例分析

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》