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更简单。😁 老哥,用的文档注释插件是啥
少微星 发表于 2024-1-22 22:10
老哥,用的文档注释插件是啥
啥插件,没懂你意思 redballoon 发表于 2024-1-22 22:37
啥插件,没懂你意思
AI注释吗{:1_909:} 感觉确实不错的样子,但我不会使用。
平时都是 print()完事。;www 一直都是用这个库打印日志,非常顺手 输出的日志长啥样, 也贴出来啊 Vvvvvoid 发表于 2024-1-23 09:21
输出的日志长啥样, 也贴出来啊
长这样
https://pic.imgdb.cn/item/65af205c871b83018a6f154c.png redballoon 发表于 2024-1-22 22:37
啥插件,没懂你意思
这个 本帖最后由 redballoon 于 2024-1-23 13:39 编辑
少微星 发表于 2024-1-23 13:23
这个
哦,这个不是用插件的,是在pycharm中自定义的
页:
[1]