Symfony2 Monolog 配置为使用 raven 处理程序(Sentry)

Posted

技术标签:

【中文标题】Symfony2 Monolog 配置为使用 raven 处理程序(Sentry)【英文标题】:Symfony2 Monolog configure to use raven handler (Sentry) 【发布时间】:2014-02-02 14:28:15 【问题描述】:

我想使用 sentry 来评估可能的错误、异常等

我尝试使用 KunstmaanSentryBundle,它可以很好地捕获各种错误,例如未定义的函数等,但我想用它自己的处理程序定义我自己的 Monolog 通道,但不幸的是我还没有找到有关它的文档。

config.yml 类似于:

monolog:
  handlers:
    sentry:
        type:  stream
        level: error
        //Log to database parameter (raven for sentry)

有人知道正确的配置吗?

【问题讨论】:

【参考方案1】:

这是config_prod.yml的一部分:

monolog:
    handlers:
        main:
            type:         fingers_crossed
            action_level: error
            handler:      grouped_main

        sentry:
            type:  raven
            dsn:   'http://user:pass@url/1'
            level: notice

        # Groups
        grouped_main:
            type:    group
            members: [sentry, streamed_main]

        # Streams
        streamed_main:
            type:  stream
            path:  %kernel.logs_dir%/%kernel.environment%.log
            level: error

享受吧! :)

【讨论】:

谢谢,monolog 2.4.* 和 symfony 2.3.* 是必需的 实际上需要 Symfony 2.2+。我知道,因为我们现在有一个项目:) 请注意,注意您在composer.json 中使用的raven/raven 库的版本,因为如果您使用的是旧版本的Sentry,那么您会遇到API 版本不匹配的问题,并且日志记录将静默失败【参考方案2】:

想将此添加为对已接受答案的评论,但没有足够的代表,所以:

来自\Symfony\Bundle\MonologBundle\DependencyInjection\Configuration

"可能的处理程序类型和相关配置(括号表示可选参数):

乌鸦: dsn:连接字符串 client_id:Raven 客户端自定义服务 ID(可选) [level]:级别名称或int值,默认为DEBUG [bubble]:bool,默认为true

"

示例配置为:

monolog:
    handlers:
        sentry:
            type: raven
            dsn: '%sentry_api_key%'
            client_id: 'your.raven.client.custom.service.id'
            level: notice
            bubble: false

【讨论】:

以上是关于Symfony2 Monolog 配置为使用 raven 处理程序(Sentry)的主要内容,如果未能解决你的问题,请参考以下文章

使用 Monolog 在 Symfony2 中记录 PHP 致命错误

Symfony2/Monolog:日志级别 - 仅显示 app.INFO?

配置 symfony monolog 保留 apache 日志

yaml/symfony2:覆盖配置

Symfony 2:将特定通道/处理程序的记录器注入服务

Graylog2 与 Symfony 2 (Monolog)