python logging使用模板

本文详细介绍了一种利用Python的logging模块结合TimedRotatingFileHandler实现按天切割日志文件的方法,通过代码实例展示了如何配置日志记录级别、日志格式及日志输出到文件和控制台的过程。

文章目录

1.代码

‘# ––coding:utf-8–
import os,sys
import logging
from logging.handlers import TimedRotatingFileHandler
script_path = os.path.abspath(os.path.dirname(sys.argv[0]))
if not os.path.isdir(os.path.join(script_path, ‘log’)):
os.system(‘mkdir -p %s’ % os.path.join(script_path, ‘log’))
logger = logging.getLogger(‘logging_test’)
logger.setLevel(logging.DEBUG)
fh = TimedRotatingFileHandler(os.path.join(script_path, ‘log’) + ‘/logging_test.log’, “D”, 1, 10)
fh.suffix = “%Y%m%d.log”
ch = logging.StreamHandler(sys.stdout)
formatter = logging.Formatter(’%(asctime)s %(filename)s %(funcName)s [line:%(lineno)d] %(levelname)s %(message)s’)
fh.setFormatter(formatter)
ch.setFormatter(formatter)
logger.addHandler(fh)
logger.addHandler(ch)
logger.error(“测试error”)
logger.info(“测试info”)

运行

在这里插入图片描述
在这里插入图片描述

以下是几个Python logging模块的模板示例: ### 简单配置模板 ```python import logging # 配置日志信息 logging.basicConfig(level=logging.DEBUG) # 取得logging.Logger对象 logger = logging.getLogger(__name__) # 使用Logger对象输出信息 logger.debug('This is a debug message') ``` 此模板通过`logging.basicConfig`进行简单的日志配置,获取`Logger`对象后输出日志信息,适用于简单的脚本或项目初始阶段的日志记录[^1]。 ### 调用配置模板 ```python import logging import my_log_settings # 加载自定义日志配置 my_log_settings.load_my_logging_cfg() # 获取不同名称的Logger对象 logger1 = logging.getLogger(__name__) logger2 = logging.getLogger('collect') # 使用Logger对象输出信息 logger1.debug('默认日志的debug') logger2.debug('给老板一封信') logger2.debug('给前台MM一封信') ``` 该模板调用自定义的日志配置模块`my_log_settings`,可根据不同的需求获取不同名称的`Logger`对象并输出日志,适用于有自定义日志配置需求的项目[^2]。 ### 自定义配置模板 ```python import logging # 创建Logger对象 logger = logging.getLogger(__name__) logger.setLevel(logging.DEBUG) # 文件处理器 file_handler = logging.FileHandler(filename="my_logger.log") file_handler.setLevel(logging.INFO) # 控制台处理器 console_handler = logging.StreamHandler() console_handler.setLevel(logging.DEBUG) # 文件格式化器 file_formatter = logging.Formatter("%(asctime)s-%(levelname)s-%(name)s-%(message)s", datefmt="%Y-%m-%d %H:%M:%S") # 控制台格式化器 console_formatter = logging.Formatter("%(levelname)s-%(name)s-%(message)s") # handler绑定formatter file_handler.setFormatter(file_formatter) console_handler.setFormatter(console_formatter) # logger绑定handler logger.addHandler(file_handler) logger.addHandler(console_handler) # 使用Logger对象输出信息 logger.debug('This is a debug message') logger.info('This is an info message') ``` 此模板自定义了日志处理器、格式化器,将不同级别的日志分别输出到文件和控制台,适用于需要对日志进行详细控制和管理的项目[^4]。 ### 模板类配置模板 ```python import logging class LogConfig: def __init__(self): self.log_folder_path = get_value("log", "log_folder_path") self.log_level = get_value("log", "log_level") # 后续可添加更多日志配置逻辑 # 使用示例 log_config = LogConfig() ``` 该模板使用类来封装日志配置,方便在不同的地方复用日志配置,适用于大型项目中对日志配置进行统一管理的场景。不过这里的`get_value`函数需要根据实际情况实现,用于从配置文件中获取日志相关的配置信息[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值