Python实战:logging模块的日志记录

您所在的位置:网站首页 如何查看优盘的使用日志记录 Python实战:logging模块的日志记录

Python实战:logging模块的日志记录

2024-07-12 17:08| 来源: 网络整理| 查看: 265

引言

在软件开发过程中,日志记录是一个非常重要的环节。它可以帮助开发者跟踪程序的运行状态,快速定位问题,从而提高开发效率。Python的logging模块提供了一套完整的日志记录解决方案,本文将详细介绍如何使用logging模块进行日志记录。

1. 环境搭建

在开始使用logging模块之前,我们不需要进行任何额外的安装,因为它是Python的标准库之一。

2. 基础用法 2.1 创建日志记录器 import logging # 创建日志记录器 logger = logging.getLogger('my_logger') 2.2 设置日志级别 # 设置日志级别为INFO logger.setLevel(logging.INFO) 2.3 添加处理器 # 创建一个StreamHandler stream_handler = logging.StreamHandler() # 设置StreamHandler的日志级别 stream_handler.setLevel(logging.INFO) # 将StreamHandler添加到日志记录器 logger.addHandler(stream_handler) 2.4 添加过滤器 # 创建一个Filter filter_ = logging.Filter('my_logger') # 将Filter添加到StreamHandler stream_handler.addFilter(filter_) 2.5 创建格式器 # 创建一个Formatter formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s') # 将Formatter添加到StreamHandler stream_handler.setFormatter(formatter) 2.6 记录日志 logger.info('This is an info message') logger.warning('This is a warning message') 3. 高级用法 3.1 添加多个处理器 # 创建另一个StreamHandler file_handler = logging.StreamHandler() # 设置file_handler的日志级别 file_handler.setLevel(logging.DEBUG) # 将file_handler添加到日志记录器 logger.addHandler(file_handler) 3.2 设置日志文件 # 创建一个FileHandler file_handler = logging.FileHandler('log.txt') # 设置file_handler的日志级别 file_handler.setLevel(logging.DEBUG) # 将file_handler添加到日志记录器 logger.addHandler(file_handler) 3.3 设置日志文件轮转 # 创建一个RotatingFileHandler file_handler = logging.RotatingFileHandler('log.txt', maxBytes=1024*1024, backupCount=5) # 设置file_handler的日志级别 file_handler.setLevel(logging.DEBUG) # 将file_handler添加到日志记录器 logger.addHandler(file_handler) 3.4 设置日志级别和过滤器 # 创建一个Filter filter_ = logging.Filter('my_logger') # 创建一个LevelFilter level_filter = logging.Filter(logging.WARNING) # 设置LevelFilter的日志级别 level_filter.setLevel(logging.WARNING) # 将LevelFilter添加到StreamHandler stream_handler.addFilter(level_filter) 3.5 设置日志格式 from datetime import datetime # 设置一个自定义的Formatter custom_formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s', datefmt='%Y-%m-%d %H:%M:%S') # 将自定义的Formatter添加到StreamHandler stream_handler.setFormatter(custom_formatter) 3.6 上下文管理器

logging模块还提供了一个上下文管理器(Context Manager),可以在程序中自动地打开和关闭日志记录器。

import logging # 创建日志记录器 logger = logging.getLogger('my_logger') # 设置日志级别 logger.setLevel(logging.INFO) # 创建一个StreamHandler stream_handler = logging.StreamHandler() stream_handler.setLevel(logging.INFO) # 创建一个Formatter formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s') stream_handler.setFormatter(formatter) # 创建一个上下文管理器 with logging.basicConfig(handlers=[stream_handler], level=logging.INFO): logger.info('This is an info message') 4. 实战案例

为了更好地理解logging模块的使用,我们将通过一个具体的案例来演示如何实现日志记录。

4.1 创建日志记录器 import logging # 创建日志记录器 logger = logging.getLogger('my_logger') 4.2 设置日志级别和处理器 # 设置日志级别为INFO logger.setLevel(logging.INFO) # 创建一个StreamHandler stream_handler = logging.StreamHandler() stream_handler.setLevel(logging.INFO) # 将StreamHandler添加到日志记录器 logger.addHandler(stream_handler) 4.3 添加过滤器和格式器 # 创建一个Filter filter_ = logging.Filter('my_logger') # 将Filter添加到StreamHandler stream_handler.addFilter(filter_) # 创建一个Formatter formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s') stream_handler.setFormatter(formatter) 4.4 记录日志 logger.info('This is an info message') logger.warning('This is a warning message') 4.5 添加文件处理器 # 创建一个FileHandler file_handler = logging.FileHandler('log.txt') file_handler.setLevel(logging.DEBUG) file_handler.setFormatter(formatter) logger.addHandler(file_handler) 4.6 设置日志文件轮转 # 创建一个RotatingFileHandler file_handler = logging.RotatingFileHandler('log.txt', maxBytes=1024*1024, backupCount=5) file_handler.setLevel(logging.DEBUG) file_handler.setFormatter(formatter) logger.addHandler(file_handler) 5. 总结

本文详细介绍了Python中logging模块的使用方法,包括基础用法、高级用法、实战案例等。通过阅读本文,相信我们已经掌握了logging模块的核心技术,并能够实现灵活、高效的日志管理。在实际项目中,合理使用logging模块可以提高程序的健壮性和可维护性。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3