对loguru
进行二次封装可以让你的项目中的日志记录更加统一和方便管理。下面是一个简单的封装示例,你可以根据自己的项目需求进行调整和扩展。
1. 创建日志配置文件
首先,创建一个日志配置文件,比如logging_config.py
,用于定义日志的基本配置和初始化。
from loguru import logger
def init_logger():
# 定义日志格式
log_format = "<green>{time:YYYY-MM-DD HH:mm:ss}</green> | <level>{level: <8}</level> | <level>{message}</level>"
# 添加控制台日志处理器
logger.add(sys.stdout, format=log_format, level="INFO")
# 添加文件日志处理器,日志按日期和大小轮转
logger.add("logs/app_log.log", format=log_format, rotation="10 MB", retention="10 days", level="DEBUG")
# 如果需要,可以添加更多的日志处理器,比如发送邮件、日志到数据库等
# 初始化日志配置
init_logger()
2. 创建日志工具类
然后,创建一个日志工具类,比如log_util.py
,用于封装日志记录的常用操作。
from loguru import logger
class LogUtil:
@staticmethod
def info(message, **kwargs):
logger.info(message, **kwargs)
@staticmethod
def debug(message, **kwargs):
logger.debug(message, **kwargs)
@staticmethod
def warning(message, **kwargs):
logger.warning(message, **kwargs)
@staticmethod
def error(message, **kwargs):
logger.error(message, **kwargs)
@staticmethod
def critical(message, **kwargs):
logger.critical(message, **kwargs)
3. 在项目中使用封装的日志工具
在你的项目代码中,你可以这样使用封装的日志工具:
from log_util import LogUtil
def some_function():
try:
# 业务逻辑代码
LogUtil.info("Function started")
# 假设这里有一些可能会出错的代码
# ...
LogUtil.info("Function completed successfully")
except Exception as e:
LogUtil.error(f"Function failed with error: {e}", exc_info=True)
# 调用函数
some_function()
4. 根据需要进行扩展
你可以根据项目的具体需求,对LogUtil
类进行扩展,比如添加日志记录请求信息、性能监控、异常跟踪等功能。
5. 集成到项目启动流程
最后,确保在项目启动时加载日志配置。这可以在你的项目入口点或者启动脚本中完成。
# 项目启动脚本
from logging_config import init_logger
# 初始化日志配置
init_logger()
# 项目其他启动代码
# ...
通过这种方式,你可以在项目中统一管理日志记录,同时保持代码的整洁和可维护性。