【发布时间】:2018-12-20 23:25:40
【问题描述】:
目标:
我想将所有 ERROR+ Monolog 记录连同较低级别的记录一起发送到 Sentry(以便于调试正在发生的事情),它们应该作为一个事件全部发送。
我有什么:
我有 config/packages/prod/monolog.yaml 的 Symfony4 应用程序:
monolog:
handlers:
# there is also fingers_crossed for file logging, but it is rather not related
sentry_buffer:
type: fingers_crossed
action_level: error
handler: sentry_transparent
# ignore records logged by exception listener
channels: ["!exceptions"]
sentry_transparent:
type: whatfailuregroup
members: [sentry]
sentry:
type: raven
# Use Sentry client registered by SentryBundle
client_id: sentry.client
level: debug
auto_log_stacks: true
我有自定义异常侦听器,它创建 JSON 响应,但在将其发送之前还将错误记录到 exceptions 通道(因此我在 fingers_crossed 处理程序中排除了此通道,因此我不会得到重复。
它在本地工作 - 只有当 Monolog 中出现 ERROR+ 记录并且所有收集的日志都附加在记录的上下文中时,才会创建 Sentry 事件。
不知何故,我们在生产中得到了 info 级别的 maaaaaaany 事件,这没有任何意义:
这些事件与任何错误无关,但在面包屑中我看到触发了一些弃用错误:
我尝试使用 trigger_error 重现此内容,就像在 ProcessBuilder 中一样(来自面包屑),但无论我做什么,我的 Sentry 中都没有收到 INFO 事件。
这些事件来自长时间运行的进程(入队消费者),但我从生产(请求、处理队列)中完成了所有步骤,但我没有像在我们的生产实例中那样得到结果。
有什么建议吗?我怎样才能改进我们的配置来实现我们需要的,但又不会向我们的 Sentry 发送我们不想要的事件?
【问题讨论】: