redballoon 发表于 2024-1-22 20:40

loguru更优雅的python日志库

本帖最后由 redballoon 于 2024-1-23 02:49 编辑

# loguru 更简单的python日志库



去看了官方文档,没多久就看不下去了,直接问GPT给出使用模板,在进行微改后更符合我的使用习惯。😀

以下是完整的函数方法,拿来即用。

## 代码

```python
# -*- coding: utf-8 -*-
"""
@ 😀Author   : 🎈
@ ⏲️Time       : 2024年01月22
@ 📄File       : demo2.py
@ ℹ️Description:

"""
import sys
from loguru import logger
from pathlib import Path


def configure_logger():
    # 确保日志目录存在
    log_directory = "logs"
    filename = f'{Path(__file__).stem}-script.log'
    Path(log_directory).mkdir(parents=True, exist_ok=True)
    custom_format = "<green>{time:YYYY-MM-DD HH:mm:ss}</green> | " \
                  "<level>{level: <8}</level> | " \
                  "<level>{thread.name: <10}</level> | " \
                  "<cyan>{name}</cyan>:<cyan>{function}</cyan>:<cyan>{line}</cyan> - " \
                  "<level>{message}</level>"
    logger.add(
      sink=(Path(log_directory) / filename),# 日志文件路径 文件类对象、字符串、pathlib.Path、可调用对象、协程函数或logging.Handler)- 负责接收格式化的日志消息并将其传播到适当终点的对象。
      enqueue=True,# 是否应将待记录的消息先通过一个多进程安全队列,然后再传递到sink。在通过多个进程记录到文件时,这很有用。这还具有使日志调用非阻塞的优点。
      level="INFO",# 从中将日志消息发送到sink的最低严重级别。
      rotation="15 MB",# 自动轮转过大的文件
      retention="2 days",# 一段时间后进行清理
      encoding="utf-8",
      backtrace=True,# 是否应扩展异常跟踪格式,以显示生成错误的完整堆栈跟踪,在DEBUG等级下,通常不建议打开backtrace, 可以减少生产环境下的性能开销
      diagnose=True,# 是否应显示异常跟踪的变量值,以便于调试。在生产环境中应将其设置为False,以避免泄漏敏感数据。
      compression="zip",
      # format:(str或可调用对象,可选)- 用于在发送到sink之前格式化日志消息的模板。
      format=custom_format,
      # serialize:(bool,可选)- 是否在发送到sink之前首先将日志消息及其记录转换为JSON字符串。
    )
    # 移除默认的控制台输出
    logger.remove()
    #如果想改变默认的控制台输出格式,添加新的sink
    logger.add(
      sink=sys.stderr,# 使用标准错误输出(stderr)为例,您也可以选择标准输出(sys.stdout)
      format=custom_format,# 可以单独为控制台输出设置自定义样式
      level="DEBUG"
    )


if __name__ == '__main__':
    configure_logger()
    # 使用logger
    logger.debug("这是一个debug信息")
    logger.info("这是一条信息")
    logger.warning("这是一个警告")
    logger.error("这是一个错误")
    logger.critical("这是一个严重错误")

```

从代码上看确实比logging更简单。&#128513;

少微星 发表于 2024-1-22 22:10

老哥,用的文档注释插件是啥

redballoon 发表于 2024-1-22 22:37

少微星 发表于 2024-1-22 22:10
老哥,用的文档注释插件是啥

啥插件,没懂你意思

alongzhenggang 发表于 2024-1-23 00:22

redballoon 发表于 2024-1-22 22:37
啥插件,没懂你意思

AI注释吗{:1_909:}

wapjsx 发表于 2024-1-23 08:30

感觉确实不错的样子,但我不会使用。

平时都是 print()完事。;www

zhbing 发表于 2024-1-23 08:35

一直都是用这个库打印日志,非常顺手

Vvvvvoid 发表于 2024-1-23 09:21

输出的日志长啥样, 也贴出来啊

Looco 发表于 2024-1-23 10:12

Vvvvvoid 发表于 2024-1-23 09:21
输出的日志长啥样, 也贴出来啊

长这样
https://pic.imgdb.cn/item/65af205c871b83018a6f154c.png

少微星 发表于 2024-1-23 13:23

redballoon 发表于 2024-1-22 22:37
啥插件,没懂你意思


这个

redballoon 发表于 2024-1-23 13:37

本帖最后由 redballoon 于 2024-1-23 13:39 编辑

少微星 发表于 2024-1-23 13:23
这个
哦,这个不是用插件的,是在pycharm中自定义的
页: [1]
查看完整版本: loguru更优雅的python日志库