【python】loguru日志库用法大全!附代码示例

Loguru 是一个用于 Python 的简单且强大的日志库。它的目标是使日志记录变得简单和优雅,同时提供许多有用的功能。Loguru 的主要特点包括:

  1. 简单易用:不需要复杂的配置,开箱即用。
  2. 丰富的功能:支持异步日志、日志文件轮转、日志格式化、过滤器等。
  3. 优雅的语法:通过 logger 对象的直接方法调用记录日志。

下面通过代码演示 Loguru 的几个最核心的功能:

安装 Loguru

可以通过 pip 安装 Loguru:

pip install loguru

基本使用

from loguru import logger

# 记录不同级别的日志
logger.debug("这是一个调试消息")
logger.info("这是一个信息消息")
logger.success("这是一个成功消息")
logger.warning("这是一个警告消息")
logger.error("这是一个错误消息")
logger.critical("这是一个关键错误消息")

日志输出到文件

from loguru import logger

# 添加一个日志文件输出,并设置轮转
logger.add("file.log", rotation="500 MB")  # 文件大小达到500MB时轮转

logger.info("这条消息将会记录到文件中")

日志格式化

from loguru import logger

# 设置日志格式
logger.add("file.log", format="{time} {level} {message}", rotation="500 MB")

logger.info("这是一条格式化的日志消息")

日志过滤

from loguru import logger

# 过滤某个级别的日志
logger.add("file.log", filter=lambda record: record["level"].name == "INFO")

logger.debug("这条消息不会被记录")
logger.info("这条消息会被记录")
logger.warning("这条消息也不会被记录")

异步日志

from loguru import logger
import asyncio

# 添加异步日志处理
logger.add("async_file.log", enqueue=True)

async def main():
    logger.info("这是一个异步日志消息")
    await asyncio.sleep(1)

asyncio.run(main())

日志异常处理

from loguru import logger

def error_function():
    x = 1 / 0

# 捕获并记录异常
try:
    error_function()
except ZeroDivisionError:
    logger.exception("捕获到一个除零错误")

Loguru 的 API 非常直观,使得记录日志变得简单高效。这些示例展示了它的基本用法,可以根据实际需求进行更复杂的配置和使用。

Response:

from loguru import logger

# 记录不同级别的日志
logger.debug("这是一个调试消息")  # 输出: 2024-07-26 10:00:00.000 | DEBUG    | __main__:1 - 这是一个调试消息
logger.info("这是一个信息消息")  # 输出: 2024-07-26 10:00:00.000 | INFO     | __main__:2 - 这是一个信息消息
logger.success("这是一个成功消息")  # 输出: 2024-07-26 10:00:00.000 | SUCCESS  | __main__:3 - 这是一个成功消息
logger.warning("这是一个警告消息")  # 输出: 2024-07-26 10:00:00.000 | WARNING  | __main__:4 - 这是一个警告消息
logger.error("这是一个错误消息")  # 输出: 2024-07-26 10:00:00.000 | ERROR    | __main__:5 - 这是一个错误消息
logger.critical("这是一个关键错误消息")  # 输出: 2024-07-26 10:00:00.000 | CRITICAL | __main__:6 - 这是一个关键错误消息

日志输出到文件

from loguru import logger

# 添加一个日志文件输出,并设置轮转
logger.add("file.log", rotation="500 MB")  # 文件大小达到500MB时轮转

logger.info("这条消息将会记录到文件中")  # 输出: 记录到 file.log 文件中: 2024-07-26 10:00:00.000 | INFO     | __main__:7 - 这条消息将会记录到文件中

日志格式化

from loguru import logger

# 设置日志格式
logger.add("file.log", format="{time} {level} {message}", rotation="500 MB")

logger.info("这是一条格式化的日志消息")  # 输出: 记录到 file.log 文件中: 2024-07-26 10:00:00 | INFO | 这是一条格式化的日志消息

日志过滤

from loguru import logger

# 过滤某个级别的日志
logger.add("file.log", filter=lambda record: record["level"].name == "INFO")

logger.debug("这条消息不会被记录")  # 不输出到文件中
logger.info("这条消息会被记录")  # 输出: 记录到 file.log 文件中: 2024-07-26 10:00:00.000 | INFO | 这条消息会被记录
logger.warning("这条消息也不会被记录")  # 不输出到文件中

异步日志

from loguru import logger
import asyncio

# 添加异步日志处理
logger.add("async_file.log", enqueue=True)

async def main():
    logger.info("这是一个异步日志消息")  # 输出: 记录到 async_file.log 文件中: 2024-07-26 10:00:00.000 | INFO | 这是一个异步日志消息
    await asyncio.sleep(1)

asyncio.run(main())

日志异常处理

from loguru import logger

def error_function():
    x = 1 / 0

# 捕获并记录异常
try:
    error_function()
except ZeroDivisionError:
    logger.exception("捕获到一个除零错误")  # 输出: 2024-07-26 10:00:00.000 | ERROR    | __main__:17 - 捕获到一个除零错误
                                           # Traceback (most recent call last):
                                           #   File "__main__.py", line 14, in <module>
                                           #     error_function()
                                           #   File "__main__.py", line 11, in error_function
                                           #     x = 1 / 0
                                           # ZeroDivisionError: division by zero
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python Loguru 是一个易于使用的日志,它提供了简洁的语法和强大的功能,可以帮助开发者在应用程序中记录和管理日志Loguru 具有以下特点: 1. 简洁的语法:Loguru 提供了简单直观的 API,使得记录日志变得轻而易举。开发者可以使用类似于 print 函数的语法来记录日志,而无需担心繁琐的配置。 2. 强大的功能:Loguru 支持将日志输出到控制台、文件、网络和其他自定义目标。开发者可以根据自己的需求配置不同的输出方式和格式。 3. 自动回滚:Loguru 具备自动回滚功能,可以根据配置的大小或时间进行日志文件的分割和归档,避免日志文件过大或过长。 4. 异常追踪:Loguru 提供了异常追踪功能,可以方便地记录和追踪应用程序中的异常信息,帮助开发者快速定位和修复问题。 5. 上下文管理:Loguru 支持上下文管理,可以在日志中添加上下文信息,如请求 ID、用户 ID 等,方便开发者跟踪和调试应用程序。 使用 Loguru 非常简单,只需要在代码中导入 loguru 模块,并使用 loguru.logloguru.logger 对象来记录日志即可。 下面是一个使用 Loguru 记录日志示例: ```python import loguru loguru.logger.add("file.log") # 将日志输出到文件 loguru.logger.info("This is an info message") # 记录一条信息日志 loguru.logger.warning("This is a warning message") # 记录一条警告日志 loguru.logger.error("This is an error message") # 记录一条错误日志 ``` 以上是 Loguru 的一些基本用法,你还可以通过配置文件或函数参数来自定义日志记录的行为。详细的用法和更多功能请参考 Loguru 官方文档。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值