Loguru Feishu Handler
基于 loguru 的飞书消息推送处理器,通过飞书机器人 webhook 将日志消息推送到飞书群聊。
特点
- 🚀 简单易用 - 一行代码即可接入飞书日志推送
- 🎨 富文本格式 - 支持飞书富文本消息,更好的格式化效果
- 🔒 缓存机制 - 支持相同消息缓存,避免重复发送
- 🎯 格式灵活 - 支持简化和详细两种消息格式
- 🔧 字段过滤 - 可配置过滤不需要的日志字段
- ⚡ 异步发送 - 多线程发送,不阻塞主程序
- 🛡️ 异常安全 - 发送失败不影响主程序运行
安装
pip install loguru-feishu-handler
快速开始
1. 创建飞书机器人
- 在飞书群聊中,点击群设置
- 选择"机器人" -> "添加机器人" -> "自定义机器人"
- 设置机器人名称和描述
- 复制生成的 Webhook 地址
- (可选)设置关键词触发
2. 基础使用
from loguru import logger
from loguru_feishu_handler import add_feishu_sink
# 添加飞书 sink(默认只发送 WARNING 级别以上的日志)
sink_id = add_feishu_sink(
webhook_url="https://open.feishu.cn/open-apis/bot/v2/hook/xxxxxxxx",
keyword="系统告警" # 飞书机器人关键词
)
# 发送日志
logger.warning("这是一条警告日志")
logger.error("这是一条错误日志")
logger.critical("系统发生严重错误!")
# 带异常信息的日志
try:
1 / 0
except Exception as e:
logger.exception("发生了除零错误")
3. 高级配置
from loguru import logger
from loguru_feishu_handler import LoguruFeishuSink
# 创建自定义 sink
sink = LoguruFeishuSink(
webhook_url="https://open.feishu.cn/open-apis/bot/v2/hook/xxxxxxxx",
keyword="系统监控",
cache_time=300, # 5分钟内相同消息不重复发送
filter_keys=["process", "thread"], # 过滤掉进程和线程信息
simple_log_levelno=30, # WARNING级别以下使用简化格式
simple_format=True, # 启用简化格式
timeout=15 # 请求超时时间
)
# 添加到 logger
sink_id = logger.add(sink, level="INFO")
# 使用示例
logger.info("这是一条信息日志") # 简化格式
logger.warning("这是一条警告日志") # 详细格式
logger.error("这是一条错误日志") # 详细格式
4. 消息格式示例
富文本格式特性:
- 支持飞书原生富文本格式(post 类型)
- 第一行关键信息加粗显示
- 更好的可读性和视觉效果
- 兼容飞书移动端和桌面端
简化格式 (级别低于 WARNING):
富文本消息,第一行加粗:
**系统告警 | INFO | 应用启动成功**
🕐 时间: 2024-01-15 10:30:25
详细格式 (级别 WARNING 及以上):
富文本消息,第一行加粗:
**系统告警 | ERROR | 数据处理失败**
🕐 时间: 2024-01-15 10:30:25
📁 文件: /app/main.py:25
🔧 函数: process_data
📋 额外信息:
user_id: 12345
request_id: req_001
❌ 异常类型: ValueError
💬 异常信息: 无效的数据格式
🔍 堆栈信息:
ValueError: 无效的数据格式
File "/app/main.py", line 25, in process_data
return parse_data(raw_data)
无关键词格式:
富文本消息,第一行加粗:
**ERROR | 系统错误**
🕐 时间: 2024-01-15 10:30:25
📁 文件: /app/main.py:25
🔧 函数: error_handler
API 参考
add_feishu_sink()
便捷函数,快速添加飞书 sink。
参数:
webhook_url(str): 飞书机器人 webhook 地址keyword(str, optional): 机器人触发关键词level(str, optional): 日志级别,默认 "INFO"cache_time(int, optional): 缓存时间(秒),默认 60filter_keys(List[str], optional): 需要过滤的字段列表simple_log_levelno(int, optional): 简化格式阈值,默认 30 (WARNING)simple_format(bool, optional): 是否启用简化格式,默认 True**kwargs: 传递给logger.add()的其他参数
返回:
int: sink ID,可用于移除 sink
LoguruFeishuSink
飞书 Sink 类,提供更多自定义选项。
方法:
__init__(webhook_url, ...): 初始化 sink__call__(message): 处理日志消息(loguru 自动调用)
注意事项
- 网络要求: 需要能够访问飞书 API
- 消息格式: 使用飞书富文本格式(post),更好的显示效果
- 消息限制: 单条消息不超过 30KB
- 频率限制: 建议设置合适的缓存时间,避免频繁发送
- 异常处理: 发送失败会打印错误信息,但不影响主程序
- 兼容性: 富文本格式兼容飞书移动端和桌面端
更新日志
v2.0.0
🎨 重大更新: 改用飞书富文本格式,显示效果更佳 📝 标题优化: 完整日志信息作为消息标题显示 🎯 默认级别: 默认日志级别调整为 WARNING,减少噪音 🌈 颜色支持: 不同日志级别使用不同颜色标识 🏗️ 结构优化: 消息内容结构化显示,可读性更强
v1.1.0
- 升级为飞书富文本格式(post 类型)
- 支持第一行加粗显示关键信息
- 优化消息结构和可读性
- 更好的飞书客户端兼容性
v1.0.0
- 初始版本发布
- 支持基础的日志消息推送
- 支持缓存机制
- 支持简化和详细格式
- 支持字段过滤
许可证
Apache License 2.0
Metadata
Release files for loguru-feishu-handler 2.0.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| loguru_feishu_handler-2.0.3.tar.gz | 13.4 kB | Without provenance | Details for loguru_feishu_handler-2.0.3.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| loguru_feishu_handler-2.0.3-py3-none-any.whl | Python 3 | none | any | Details for loguru_feishu_handler-2.0.3-py3-none-any.whl |
Total release size: 25.1 kB
Release files / loguru_feishu_handler-2.0.3.tar.gz
| Download URL | loguru_feishu_handler-2.0.3.tar.gz |
|---|---|
| Size | 13.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ce357e652fa63152b0f1e80c35a52ddfa71838548e14ad19bb3e5c4fe23d2ce5
|
|
BLAKE2b-256 checksum How to use checksums |
8a2dd3d3a6e5485d9efbb9699aa30b7dcb639f1667be4a90b0317198a1acdc29
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Release files / loguru_feishu_handler-2.0.3-py3-none-any.whl
| Download URL | loguru_feishu_handler-2.0.3-py3-none-any.whl |
|---|---|
| Size | 11.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f15a13335ce311a029b0df5fb8afc8997efc0253b7f3ab3d72e73c685277a185
|
|
BLAKE2b-256 checksum How to use checksums |
fa7693444cb7319e0a50c1b0e33afe5567ec18486af8e03993aeff8a63531527
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Security for loguru-feishu-handler 2.0.3
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.