m8rge/yii-sentry-log

此包的最新版本(1.1.0)没有可用的许可信息。

一个用于Sentry(http://getsentry.com)的Yii客户端

1.1.0 2019-01-28 18:15 UTC

This package is auto-updated.

Last update: 2024-09-22 22:40:40 UTC


README

Yii sentry log 是一个组件,用于将所有日志和异常发送到Sentry服务器,而不是显示在屏幕上或保存到文件中,尤其是在您将 YII_DEBUG 设置为 false 时。此模块基于 raven-php,由 getsentry 开发。

RSentryComponent 可以用于与yii日志一起使用,以获得适当的回溯消息。

需求

配置

  • 将您的克隆或所有文件复制到 /protected/components/yii-sentry-log
  • 编辑您的 config.php
    ...
    'components'=>array(
    	...
        'log'=>array(
            'class'=>'CLogRouter',
            'routes'=>array(
                array(
                    'class'=>'application.components.yii-sentry-log.RSentryLog',
                    'dsn'=> '[YOUR_DSN_FROM_SENTRY_SERVER]',
                    'levels'=>'error, warning',
                    // optional
                    //     adds to user context values from arrays or objects chains from $GLOBAL
                    //     skips if anything from the chain is absent (respects attributes, but not other getters)
                    //     NB! default values for user context will disappear and these values will be added
                    'context' => [
                        // adds $GLOBALS['_SESSION']['user']->username under 'nameOfUser' key
                        'nameOfUser' => ['_SESSION', 'user', 'username'],
                        // adds $GLOBALS['_SESSION']['user']->username under '_SESSION:user:email' key
                        ['_SESSION', 'user', 'email'],
                        // adds $GLOBALS['_SESSION']['optionalObject']->someProperty['someSubKey'] value, skips if absent
                        'optionalValue' => ['_SESSION', 'optionalObject', 'someProperty', 'someSubKey'],
                    ]
                ),                
            ),
        ),
        ...
    )
    ...
  • 感谢 @BoontjieSA,RSentryComponent 可用于 warning 级别,但遗憾的是目前它在一个公开的服务器上无法运行。
  • 使用 error, warning 时应使用 exceptTitle 以避免重复的异常报告。
    'preload'=> array('log', 'RSentryException'),
    'components'=>array(
    	...
    	'RSentryException'=> array(
    	    'dsn'=> '[YOUR_DSN_FROM_SENTRY_SERVER]',
            'class' => 'application.components.yii-sentry-log.RSentryComponent',
            // optional
            //     adds to user context values from arrays or objects chains from $GLOBAL
            //     skips if anything from the chain is absent (respects attributes, but not other getters)
            //     NB! default values for user context will disappear and these values will be added
            'context' => [
                // adds $GLOBALS['_SESSION']['user']->username under 'nameOfUser' key
                'nameOfUser' => ['_SESSION', 'user', 'username'],
                // adds $GLOBALS['_SESSION']['user']->username under '_SESSION:user:email' key
                ['_SESSION', 'user', 'email'],
                // adds $GLOBALS['_SESSION']['optionalObject']->someProperty['someSubKey'] value, skips if absent
                'optionalValue' => ['_SESSION', 'optionalObject', 'someProperty', 'someSubKey'],
            ]
    	),
        'log'=>array(
            'class'=>'CLogRouter',
            'routes'=>array(
                array(
                    'class'=>'application.components.yii-sentry-log.RSentryLog',
                    'dsn'=> '[YOUR_DSN_FROM_SENTRY_SERVER]',
                    'levels'=>'error, warning',
                    // optional
                    //     adds to user context values from arrays or objects chains from $GLOBAL
                    //     skips if anything from the chain is absent (respects attributes, but not other getters)
                    //     NB! default values for user context will disappear and these values will be added
                    'context' => [
                        // adds $GLOBALS['_SESSION']['user']->username under 'nameOfUser' key
                        'nameOfUser' => ['_SESSION', 'user', 'username'],
                        // adds $GLOBALS['_SESSION']['user']->username under '_SESSION:user:email' key
                        ['_SESSION', 'user', 'email'],
                        // adds $GLOBALS['_SESSION']['optionalObject']->someProperty['someSubKey'] value, skips if absent
                        'optionalValue' => ['_SESSION', 'optionalObject', 'someProperty', 'someSubKey'],
                    ],
                    'exceptTitle' => [ // array of regex patterns
                        "/^exception '([^ ]*)' with message/",
                    ],
                ),                
            ),
        ),
        ...
    )
    ...

版权信息

版权(c)2012 RoliesTheBee

特此授予任何获得此软件及其相关文档副本(以下简称“软件”)的人士,在不受限制的情况下处理该软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本,并允许向软件提供者提供的人士也这样做,前提是遵守以下条件

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

本软件按“原样”提供,不提供任何形式的保证,无论是明示的、暗示的还是法定的,包括但不限于适销性、特定用途适用性和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论是基于合同、侵权或其他法律行为,无论该索赔、损害或其他责任是否源于、因之而引起或与此有关,包括但不限于软件或其使用或其它处理。