php - 使用 Symfony 和 Monolog 的 Slack 通知
问题描述
我是来寻求新的帮助的。问题:对于每个异常,我必须在 Slack 上发送一条消息,前提是在前一分钟尚未通知异常(没有来自 404 错误的通知)。Symfony 版本:4.3 我想利用 Monolog 的 SlackHandler。这就是我所做的。
独白.yaml
monolog:
channels: ['notifier']
产品/monolog.yaml
monolog:
handlers:
slack_errors:
type: fingers_crossed
action_level: error
excluded_404s:
- ^/
handler: slack_errors_handler
slack_errors_handler:
type: slack
token: '%app.exception_notifier.slack.token%'
channel: '%app.exception_notifier.slack.channel%'
bot_name: '%app.exception_notifier.slack.bot%'
icon_emoji: ':ghost:'
level: critical
include_extra: true
channels: ['notifier']
我创建了一个实体以将异常保存在数据库中(实体的属性:生成事件的类、异常代码、异常消息、异常跟踪),并且我预先保存了创建日期。我还有一个属性,用于标识实体是否已被通知。通过对数据库的简单查询,我检查我是否已经在过去 60 秒内通知了异常。我创建了一个异常订阅者,在其中注入了一个适当的管理器。所以我确实将异常保存在数据库中,并检查通知是否发生在前 60 秒内。现在,如果没有通知,我该如何利用上述配置的独白?
这是应该发送通知的方法。
/**
* @return bool
* @throws \Doctrine\ORM\NoResultException
* @throws \Doctrine\ORM\NonUniqueResultException
*/
public function dispatch()
{
if ($this->log && ($id = $this->log->getId())) {
if ($this->logRepository->findCountLogByExceptionEvent(
$this->log, [$id], $this->interval
)) {
return false;
}
$this->logger->critical(); // @TODO
$this->log->setIsNotified(1);
$this->om->flush($this->log);
return true;
}
return false;
}
请问$this->logger->critical();
下线怎么办?
解决方案
推荐阅读
- r - 如何使用 plot3D::persp3D() 像使用 rgl::persp3d() 一样在 rgl 设备中查看绘图?
- html - 我的日期字段在 IE8 中运行良好,但在 IE11 中运行不正常
- bash - 不能在 mv 命令中使用此变量
- c# - 实体框架上下文 SqlQuery
对于存储过程返回 SqlParameter 已被另一个 SqlParameterCollection 包含 - c - 在c中使用信号量同步两个子进程
- angular - 如果一个 observable 正在进行,订阅它,如果没有,重新启动它
- javascript - 这些出口在功能上是否相同?
- node.js - 如何获取mongodb中不同元素的最大值?
- complex-numbers - 复数的类型类
- shell - 用于折叠表格数据以创建非冗余列的 Shell 命令