greeny / nette-slack-logger
直接将错误信息记录到 Slack 房间
Requires
- tracy/tracy: ^2.3
This package is auto-updated.
Last update: 2024-09-19 05:45:44 UTC
README
直接将错误信息记录到 Slack 房间
安装
composer require greeny/nette-slack-logger
并将扩展注册到您的 config.neon 配置文件中
extensions: slackLogger: greeny\NetteSlackLogger\DI\SlackLoggerExtension
默认情况下,记录器是关闭的,因为您可能不想从开发环境记录错误。如果您想启用它,请将以下行添加到生产服务器上的 config.local.neon
slackLogger: enabled: true timeout: 60 slackUrl: https://hooks.slack.com/services/XXX logUrl: http://path/to/your/logs/directory/__FILE__
当然,将 slackUrl
替换为来自 Slack 入站 webhook 的 payload URL。
您可以保留 logUrl
为空,但如果您可以通过 Web 访问日志(当然,例如通过 HTTP 身份验证保护或仅对公司 IP 可用),您可以在此处定义此 URL。 __FILE__
将被替换为包含异常的文件名。
您还可以在 timeout
键中定义请求超时。
配置
您还可以进一步配置您的记录器
slackLogger: messageFactory: Some\Message\Factory defaults: channel: XXX icon: XXX name: XXX title: XXX text: XXX color: XXX
messageFactory
包含实现 greeny\NetteSlackLogger\IMessageFactory
的类的 FQN。此类用于为 Slack 创建消息。如果您想使用默认提供的类,则可以省略它。如果您创建自定义消息工厂,它将默认参数作为第一个参数接收,并将 logUrl
作为第二个参数。
默认值是自解释的,但以下是对它们的描述
channel
- 您希望消息到达的频道(覆盖 Slack 管理中的 webhook 设置)icon
- 您希望您的机器人拥有的图标(覆盖 Slack 管理中的 webhook 设置)name
- 您希望您的机器人拥有的名称(覆盖 Slack 管理中的 webhook 设置)title
- 您希望消息拥有的标题text
- 您希望消息拥有的文本(您可能永远不会使用此选项,但它在这里是为了保持一致性)color
- 您希望消息拥有的颜色(接受#RRGGBB
和可能的其他内容,不确定)
处理程序
您还可以为记录器设置自定义处理程序。只需通过 DI 获取记录器实例或通过调用 Tracy\Debugger::getLogger()
来获取记录器实例,然后使用 addHandler
方法添加您的自定义处理程序。
处理程序是一个可调用的函数,它将 greeny\NetteSlackLogger\MessageSendEvent
作为唯一的参数。它有一系列有用的方法
getMessage()
- 返回要发送的消息getValue()
- 返回要记录的值getPriority()
- 返回此日志操作的优先级getLogFile()
- 返回记录值的文件(如果没有记录任何内容,则返回 NULL)cancel()
- 取消发送消息isCancelled()
- 返回是否已取消发送
getMessage()
方法返回 greeny\NetteSlackLogger\IMessage
实例,该实例具有与 defaults
部分中定义的相同属性的自定义获取器和设置器(参见配置)
您可以在这里更改消息,因为处理程序在消息发送之前被调用。如果您取消消息,它仍然会记录到该文件中。