python自定义日志等级
自定义日志等级
前言:最近在做需求的时候有一个需求,要求自定义个日志等级,用于保存不同的业务日志,花了小功夫,为防止遗忘,在此记录一下。
# custom_logging.py
import logging
# 自定义日志级别
SUCCESS = 25 # 介于 INFO (20) 和 WARNING (30) 之间
# 向 logging 模块注册新的日志级别
logging.addLevelName(SUCCESS, "SUCCESS")
def success(self, message, *args, **kwargs):
if self.isEnabledFor(SUCCESS):
self._log(SUCCESS, message, args, **kwargs)
# 给所有的 Logger 实例添加 success 方法
logging.Logger.success = success
# 允许通过 logging.success 访问日志方法
logging.success = lambda message, *args, **kwargs: logging.getLogger().success(message, *args, **kwargs)
然后,在其他类中,你可以通过导入 custom_logging 模块来使用新的日志级别:
import custom_logging
# 配置日志输出
logging.basicConfig(level=logging.SUCCESS, format='%(asctime)s - %(levelname)s - %(message)s')
# 使用新的日志级别
logging.success('This is a custom SUCCESS level log.')