python中的logging

本文介绍如何在Python中使用logging模块进行日志记录配置,包括创建RotatingFileHandler以实现日志文件滚动,设置日志格式及如何在项目中引入和使用已配置的日志。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python中的logging模块:

把对logging的配置单独写在一个文件中:

# coding:utf-8
import logging
import logging.handlers
LOG_FILE = 'd:/tst.log'
handler = logging.handlers.RotatingFileHandler(LOG_FILE, maxBytes=1024 * 1024, backupCount=5)  # 实例化handler
fmt = '%(levelname)s - %(asctime)s - {%(module)s/%(filename)s:%(lineno)s[%(funcName)s]} - %(message)s - %(name)s '
formatter = logging.Formatter(fmt)  # 实例化formatter
handler.setFormatter(formatter)  # 为handler添加formatter
mylogger = logging.getLogger('tst')  # 获取名为tst的logger
mylogger.addHandler(handler)  # 为logger添加handler
mylogger.setLevel(logging.DEBUG)
其中日志文件的路径可以设置成相对路径和绝对路径,LOG_FILE='d:/tst.log'是绝对路径,
LOG_FILE='tst.log'则是在项目根目录下。
在需要使用logging的文件中引入配置好的logging:
from log.log import mylogger
在需要使用logging的地方调用:
mylogger.info('23')
日志格式化的格式说明参考官网文档
效果如图:

Python中的logging模块提供了一种灵活且可配置的方式来记录信息。通过使用不同的handler、formatter和logger对象的组合,可以控制日志消息的输出方式、输出位置和格式。使用logging模块可以在代码中记录各种级别的消息,例如调试信息、警告、错误和致命错误。下面是一个简单的例子: ```python import logging # 创建一个logger logger = logging.getLogger('my_logger') logger.setLevel(logging.DEBUG) # 创建一个文件handler,用于写入日志文件 fh = logging.FileHandler('mylog.log') fh.setLevel(logging.DEBUG) # 创建一个控制台handler,用于输出到控制台 ch = logging.StreamHandler() ch.setLevel(logging.ERROR) # 定义日志输出格式 formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') fh.setFormatter(formatter) ch.setFormatter(formatter) # 将handler添加到logger中 logger.addHandler(fh) logger.addHandler(ch) # 记录日志 logger.debug('debug message') logger.info('info message') logger.warning('warning message') logger.error('error message') logger.critical('critical message') ``` 上面的代码创建了一个logger对象,并添加了一个文件handler和一个控制台handler。文件handler会将日志信息写入到指定的文件中,控制台handler会将错误级别以上的日志信息输出到控制台。该例子还定义了日志信息的格式,最后通过调用logger对象的各个方法来记录不同级别的日志信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值