Skip to main content

基于nonebot的报错处理插件,支持图片/文字发送、数据库存储及跨平台

Project description

这里放一张oc饭🤤

NoneBot 错误管理插件

✨ 智能记录并可视化机器人运行时的错误信息 ✨

[!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": "your_email@qq.com",
    "smtp_password": "your_password",
    "email_to": ["admin@example.com"],
    
    # 定时报告
    "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)
  #这里填你发送图片的方法

📑 开发计划

✅ 已完成功能

邮件通知系统

  • 支持定时发送错误报告
  • 支持实时错误通知推送

错误信息增强

  • 优化依赖注入机制
  • 扩展错误信息采集范围
  • 优化发送错误信息的显示

跨平台兼容性

  • 支持主流聊天平台错误推送
  • 统一错误处理接口

报错处理增强

  • 忽略指定插件的报错
  • 忽略指定报错类型
🚧 进行中功能

数据存储优化

  • ORM数据库动态加载/卸载
  • JSON文件导入导出支持
  • 数据迁移工具开发
📋 计划中功能

代码重构与优化

  • 性能优化
  • 代码结构重组
  • 测试覆盖率提升
  • 错误信息格式优化
  • 尝试使用ai来处理错误信息
  • 尝试自动化运维

平台适配扩展

  • 新增平台支持
  • 统一适配器接口

📸 效果展示

📸图片

这里是一些示例示例图片

示例图片-1 示例图片-2 示例图片-3 示例图片-4 示例图片-5 示例图片-6 示例图片-7 示例图片-8

🙏 鸣谢

📄 开源协议

MIT License

Copyright (c) 2025 huanxin996

📄 更新日志

v0.0.2 (2025-03-27)

✨ 新特性

  • 新增邮件通知功能
    • 支持错误报告邮件推送
    • 可配置邮件发送触发条件
    • 自定义邮件模板支持
  • 新增更好的配置项
    • 指定忽略错误类型
    • 指定忽略错误插件

🔧 优化

  • 改进错误信息显示格式
    • 添加报错插件名称
    • 优化堆栈信息可读性
    • 增加错误上下文展示
    • 新增更详细的错误信息存储格式
  • 完善配置项说明文档

🐛 修复

  • 修复图片生成失败时的异常处理

v0.0.1 (2025-03-26)

🎉 初始发布

  • 实现基础错误捕获功能
  • 支持错误信息图片化展示
  • 添加基本的错误管理命令
  • 完成数据库存储功能

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nonebot_plugin_error_report-0.1.0.tar.gz (21.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nonebot_plugin_error_report-0.1.0-py3-none-any.whl (20.0 kB view details)

Uploaded Python 3

File details

Details for the file nonebot_plugin_error_report-0.1.0.tar.gz.

File metadata

File hashes

Hashes for nonebot_plugin_error_report-0.1.0.tar.gz
Algorithm Hash digest
SHA256 aab22e0286fac33a8bf63be9a534d7ad14ab1f4287d265d29e7b134de1c276d2
MD5 85af7b36e18118b54d0bf2629b6dde1f
BLAKE2b-256 100a5f2624617a50e2d748fc6fbbf2e2043dfe797e2f84b52271fd201b0a6073

See more details on using hashes here.

File details

Details for the file nonebot_plugin_error_report-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for nonebot_plugin_error_report-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 af8b2ad835175c118c76de1e5e01c14984b05aee819da86b2173afff015f2664
MD5 802efb68e04ada486d988e6b250eea40
BLAKE2b-256 3716f86759061cdac73334cf7c890cca9e81397d4b73af45b1e1742413b12736

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page