松鼠仓库/error-log

此TYPO3扩展管理错误和异常,甚至在TYPO3完全加载之前。它将错误分组并在后端显示,包括详细信息和不完整信息。通过电子邮件和Slack配置的通知和报告可让您保持最新,同时AI辅助有助于解决问题。

安装: 241

依赖项: 0

建议者: 0

安全: 0

星标: 13

关注者: 2

分支: 3

开放问题: 4

类型:typo3-cms-extension

12.4.8 2024-09-24 13:17 UTC

README

ErrorLog TYPO3 12 License RD StandWithUkraine

TYPO3高级错误日志

Stand With Ukraine

特性

  • 处理TYPO3错误和内容对象异常
  • 处理TYPO3完全加载之前发生的错误
  • 在TYPO3后端模块中显示分组错误
  • 为每个错误发生提供详细信息,包括堆栈跟踪
  • 通过电子邮件和Slack配置错误通知
  • 通过电子邮件和Slack配置组合错误报告
  • AI辅助错误解决

要求

基本要求与所使用的TYPO3版本相同,但是可能需要调整php.ini以收集错误堆栈跟踪的参数。

PHP v7.4开始,添加了一个新的ini指令zend.exception_ignore_args,默认值为On。结果,默认PHP设置没有收集参数。应将其更改为zend.exception_ignore_args = Off

安装

您可以使用以下方式安装高级错误日志:

composer require raccoondepot/error-log

扩展安装后,升级向导会重写项目LocalConfiguration文件,以使用我们的异常处理器设置。

配置

大多数设置都可通过模块中的设置操作获得。它由两个标签组成 - 设置用户。在设置标签中,有三个部分 - 通用 - SlackOpenAI,这些部分可帮助您配置相应功能。每个部分以一个复选框开始,该复选框启用当前设置部分。用户标签显示已启用电子邮件通知的用户列表。

通用

使用启用错误日志功能复选框,您可以选择启用或禁用日志记录。它以与升级向导相同的方式写入LocalConfiguration更改。

错误日志过期前天数字段负责错误日志数据库清理。它说明了何时需要删除过时的记录。默认值0表示不删除错误记录。

Slack

要使用Slack,我们需要通过相应的复选框(启用Slack通知)启用它。要发送通过Slack的通知,首先需要创建一个Slack应用程序。创建过程在Slack教程页面中描述。

应用程序准备就绪后,您应添加其授权令牌和通知将发送到的频道ID。频道ID可在频道详情弹出窗口的底部查看。应使用这些值填写Slack授权令牌Slack频道ID字段。

有一个发送测试消息按钮来检查应用程序是否配置正确。

下一步是配置错误发生和报告的通知。这可以通过错误报告发送错误发生通知发送下拉菜单完成。

如果配置正确,Slack 通知将如下显示:

OpenAI

OpenAI API 用于获取关于错误原因和解决方法的建议。要使用 OpenAI API,需要从 OpenAI 获取授权令牌并将其输入到 OpenAI 授权令牌 字段中。在 OpenAI 系统预提示 字段中,您可以调整对 LLM 的初始指令。下拉列表 OpenAI GPT 模型 允许您选择要使用的模型。gpt-3.5-turbo 是最便宜的,而 gpt-4-turbo 是最智能的,但稍微慢一些且最贵。

在 OpenAI 部分的底部有一个 测试 AI 按钮,用于检查是否已正确配置。

电子邮件通知

扩展模块中未配置电子邮件通知。它们将单独为每个用户(如果需要)进行配置,因此这些选项可以在用户设置或后端用户模块(也可以通过扩展设置操作的 用户 选项卡进行用户编辑)中找到。

在用户设置和后端用户中都添加了一个新的选项卡 错误通知。在这里,您可以找到类似于 Slack 的配置 - 启用电子邮件通知 复选框和两个下拉列表:错误报告发送错误发生通知发送

为了使其生效,用户电子邮件字段也应填写在用户设置中。如果一切配置正确,用户将收到如下电子邮件:

调度任务

我们的扩展使用一个调度任务 错误日志服务管理任务。它用于发送报告、处理未正确分发的错误(那些在 TYPO3 完全加载之前出现的)并清理数据库。每小时执行一次或两次应该足够。

内容对象异常

默认情况下,我们覆盖了本地内容对象异常处理程序,将内容对象错误详细信息写入我们的日志,但其余行为保持不变(在无法渲染的章节中显示 发生错误 消息)。如果您想在页面上查看错误详细信息,应通过 typoscript 关闭此处理程序。

config.contentObjectExceptionHandler = 0

结果,错误详细信息将在页面上显示,但它们仍然会通过我们的扩展进行记录

主要功能描述

我们扩展的主要部分是位于 TYPO3 后端 系统 部分的 错误日志 模块。

主要视图显示分组错误的筛选列表:

您可以通过单击任何错误组来查看该组中所有错误的列表:

列表中的每个错误都可以通过详细信息进行展开。这里您可以看到一个包含入口点、浏览器信息、IP等详细信息的表格,以及带有参数的完整堆栈跟踪:

如果配置了OpenAI,还会有一个名为“AI助手”的标签页,其中包含基于错误详情的提示并准备好执行。如果需要,也可以修改提示。AI的请求将在提示文本区域下方显示:

事件和功能扩展

在我们的扩展中,我们派发了两个事件

您可以为这些事件中的任何一个轻松添加自己的监听器,并在事件派发时执行自己的操作。

未来计划

这个扩展还在进行中,我们有很多想法要实现在未来版本中。以下是一些:

  • 处理PHP错误日志文件中的错误(直接或通过直接上传的文件);
  • 为替代通知源提供动态配置;
  • 使用检索增强生成(RAG)来提供更好的TYPO3上下文给AI。