对`loguru`进行二次封装,项目中使用更方便

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()

# 项目其他启动代码
# ...

通过这种方式,你可以在项目中统一管理日志记录,同时保持代码的整洁和可维护性。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

结伴同行~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值