greeny/nette-slack-logger

直接将错误信息记录到 Slack 房间

1.2.0 2016-03-30 12:06 UTC

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 部分中定义的相同属性的自定义获取器和设置器(参见配置)

您可以在这里更改消息,因为处理程序在消息发送之前被调用。如果您取消消息,它仍然会记录到该文件中。