Note
如有建议或错误,请提交 issue。
本人代码水平很烂,将就着用罢()
这是一个基于 NoneBot2 的错误处理插件,提供以下功能:
- 实时捕获并绘制错误详细信息为图片
- 支持错误信息的持久化存储与管理
- 多样化的错误查询与统计功能
- 支持多平台适配
- 自动将错误信息转换为图片发送(失败时自动切换为文本模式)
- 支持错误信息的数据库存储
- 提供丰富的错误管理命令
- 基于 nonebot-plugin-userinfo 获取用户信息
- 使用 nonebot_plugin_alconna 提供优雅的命令交互
使用 pip 安装
pip install nonebot-plugin-error-manager这是最基础的安装方式,适用于所有 Python 环境。如果你使用的是虚拟环境,请确保在激活虚拟环境后再执行此命令。
使用 nb-cli 安装
nb plugin install nonebot_plugin_error_manager这是 NoneBot2 推荐的安装方式,它会自动处理依赖关系并在 pyproject.toml 中注册插件。
从 GitHub 安装开发版
git clone https://github.com/huanxin996/nonebot-plugin-error-manager.git
cd nonebot-plugin-error-manager
pip install -e .如果你需要最新的开发版本或想要参与开发,可以使用这种方式安装。
基础配置
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| error_image_quality | int | 30 | 错误图片渲染质量(1-100) |
| error_image_font | str | None | 错误图片字体文件路径 |
| enable_error_report | bool | True | 是否启用错误自动发送功能 |
| enable_error_logs | bool | True | 是否启用错误日志记录功能 |
| use_orm_database | bool | True | 是否使用数据库存储(False则使用JSON文件) |
邮件通知配置
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| enable_email | bool | False | 是否启用邮件通知 |
| smtp_host | str | "smtp.qq.com" | SMTP服务器地址 |
| smtp_port | int | 465 | SMTP服务器端口 |
| smtp_ssl | bool | True | 是否使用SSL连接 |
| smtp_user | str | "" | SMTP用户名 |
| smtp_password | str | "" | SMTP密码或授权码 |
| email_from | str | "" | 发件人邮箱 |
| email_batch_size | int | 10 | 邮件发送批次大小 |
| email_to | list[str] | [] | 收件人邮箱列表 |
定时报告配置
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| enable_scheduled_report | bool | False | 是否启用定时报告 |
| report_mode | str | "count" | 触发模式: count(累计触发)/time(定时触发) |
| report_count | int | 10 | 累计错误触发阈值(count模式) |
| report_interval | str | "0 0 '' '' _" | 定时发送cron表达式(time模式) |
| clear_after_report | bool | False | 发送后是否清空记录 |
错误过滤配置
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| ignored_plugins | list[str] | [] | 忽略的插件列表 |
| ignore_patterns | list[str] | [] | 忽略的错误模式(支持正则表达式) |
配置示例
error_manager_config = {
# 基础配置
"error_image_quality": 50,
"error_image_font": "C:/Windows/Fonts/msyh.ttc",
# 邮件配置
"enable_email": True,
"smtp_user": "[email protected]",
"smtp_password": "your_password",
"email_to": ["[email protected]"],
# 定时报告
"enable_scheduled_report": True,
"report_mode": "time",
"report_interval": "0 0 * * *",
# 错误过滤
"ignored_plugins": ["plugin1", "plugin2"],
"ignore_patterns": ["*timeout*", "*connection refused*"]
}/错误管理 查看 [页数]- 分页查看错误记录/错误管理 详情 [id]- 查看指定ID的错误详情/错误管理 删除 [id]- 删除指定ID的错误记录/错误管理 统计- 查看错误统计信息
/错误管理 查找 <字段名> <值>- 精确查找错误记录/错误管理 搜索 <关键词>- 模糊搜索错误记录/错误管理 清空 <类型> <值>- 批量清理错误记录- 类型:all/user/bot/date
- 值:all/用户ID/机器人ID/日期
支持使用 错误 或 err 作为命令别名。
from nonebot_plugin_error_manager import error_to_images
try:
#代码内容
except Exception as e:
img = error_to_images(e)
#这里填你发送图片的方法✅ 已完成功能
- 支持定时发送错误报告
- 支持实时错误通知推送
- 优化依赖注入机制
- 扩展错误信息采集范围
- 优化发送错误信息的显示
- 支持主流聊天平台错误推送
- 统一错误处理接口
- 忽略指定插件的报错
- 忽略指定报错类型
MIT License
Copyright (c) 2025 huanxin996
- 优化错误信息展示格式
- 优化版本号获取逻辑
- 尝试json存储
- 新增部分配置项
- 更好的处理错误信息的发送逻辑
- 新增邮件通知功能
- 支持错误报告邮件推送
- 可配置邮件发送触发条件
- 自定义邮件模板支持
- 新增更好的配置项
- 指定忽略错误类型
- 指定忽略错误插件
- 改进错误信息显示格式
- 添加报错插件名称
- 优化堆栈信息可读性
- 增加错误上下文展示
- 新增更详细的错误信息存储格式
- 完善配置项说明文档
- 修复图片生成失败时的异常处理
- 实现基础错误捕获功能
- 支持错误信息图片化展示
- 添加基本的错误管理命令
- 完成数据库存储功能