将 Sentry 9 与 Yii 2 高级项目模板 集成的实现

1、在配置您的应用程序的 All 选项中,不存在 Yii2 框架,只能够选择 PHP,如图1

在配置您的应用程序的 All 选项中,不存在 Yii2 框架,只能够选择 PHP

图1

2、为 Sentry 安装 PHP 集成。推荐的方法是使用 Composer,不过决定暂不采用此方案,如图2

 

3、在 GitHub 中搜索 yii2 sentry,决定基于 hellowearemito/yii2-sentry 实现,如图3

为 Sentry 安装 PHP 集成。推荐的方法是使用 Composer,不过决定暂不采用此方案

图2

3、在 GitHub 中搜索 yii2 sentry,决定基于 hellowearemito/yii2-sentry 实现,如图3

在 GitHub 中搜索 yii2 sentry,决定基于 hellowearemito/yii2-sentry 实现

图3

4、打开网址:https://github.com/hellowearemito/yii2-sentry ,执行命令,如图4

打开网址:https://github.com/hellowearemito/yii2-sentry ,执行命令

图4

composer require --prefer-dist mito/yii2-sentry "~1.0.0"

5、安装扩展后,在开发环境的配置文件中设置配置,编辑 /environments/dev/api/config/main-local.php

return [
    'components' => [
        'request' => [
            // !!! insert a secret key in the following (if it is empty) - this is required by cookie validation
            'cookieValidationKey' => '',
        ],
        'sentry' => [
            'class' => 'mito/sentry/Component',
            'enabled' => false, // 设置为 false 以跳过收集错误,即禁用 Sentry,默认:true
            'dsn' => 'YOUR-PRIVATE-DSN', // 私有 DSN
            'environment' => 'development', // 环境,development:开发环境;production:生产环境,默认:production
            'jsNotifier' => false, // 收集 JS 错误,默认:false
            'jsOptions' => [ // raven-js 配置参数
                'whitelistUrls' => [ // 收集JS错误的网址
                    'http://api.gitlab-php-yii2-app-advanced-cmc.localhost',
                ],
            ],
        ],
    ],
];

6、安装扩展后,在生产环境的配置文件中设置配置,编辑 /environments/prod/api/config/main-local.php

return [
    'components' => [
        'request' => [
            // !!! insert a secret key in the following (if it is empty) - this is required by cookie validation
            'cookieValidationKey' => '',
        ],
        'sentry' => [
            'class' => 'mito/sentry/Component',
            'enabled' => false, // 设置为 false 以跳过收集错误,即禁用 Sentry,默认:true
            'dsn' => 'YOUR-PRIVATE-DSN', // 私有 DSN
            'environment' => 'production', // 环境,development:开发环境;production:生产环境,默认:production
            'jsNotifier' => false, // 收集 JS 错误,默认:false
            'jsOptions' => [ // raven-js 配置参数
                'whitelistUrls' => [ // 收集JS错误的网址
                    'http://api.gitlab-php-yii2-app-advanced-cmc.localhost',
                ],
            ],
        ],
    ],
];

7、配置日志组件,以支持将日志发送至 Sentry,编辑 /api/config/main.php

    'components' => [
        'log' => [
            'traceLevel' => YII_DEBUG ? 3 : 0,
            'targets' => [
                'sentry' => [
                    'class' => 'mito/sentry/Target',
                    'levels' => ['error', 'warning'],
                ],
            ],
        ],
    ],

8、初始化选择开发环境,编辑 /api/config/main-local.php,如图5

初始化选择开发环境,编辑 /api/config/main-local.php

图5

init
0
yes
All

9、私有 DSN 的值,需要从 /settings/sentry/pcs-api/install/php/ 的 Configuration 中复制,如图6

私有 DSN 的值,需要从 /settings/sentry/pcs-api/install/php/ 的 Configuration 中复制

图6

10、GET 请求接口,响应 302,如图7

GET 请求接口,响应 302

图7

{
    "name": "Found",
    "message": "框架服务控制台HTTP请求失败:登录超时",
    "code": 20039,
    "status": 302,
    "type": "yii//web//HttpException"
}

11、查看 Unresolved Issues,即尚未解决的问题,符合预期,对应的日志已经发送至 Sentry,如图8

查看 Unresolved Issues,即尚未解决的问题,符合预期,对应的日志已经发送至 Sentry

图8

12、初始化选择生产环境,编辑 /api/config/main-local.php,如图9

初始化选择生产环境,编辑 /api/config/main-local.php

图9

init
1
yes
All

13、GET 请求接口,响应 404,如图10

GET 请求接口,响应 404

图10

{
    "name": "Not Found",
    "message": "用户ID:10,不存在",
    "code": 20002,
    "status": 404
}

14、查看 Unresolved Issues,即尚未解决的问题,符合预期,对应的日志已经发送至 Sentry,如图11

查看 Unresolved Issues,即尚未解决的问题,符合预期,对应的日志已经发送至 Sentry

图11

15、初始化选择开发环境后,不编辑 /api/config/main-local.php,如图12

初始化选择开发环境后,不编辑 /api/config/main-local.php

图12

16、GET 请求接口,响应 404,如图13

GET 请求接口,响应 404

图13

{
    "name": "Not Found",
    "message": "用户ID:11,不存在",
    "code": 20002,
    "status": 404,
    "type": "yii//web//NotFoundHttpException"
}

17、查看 Unresolved Issues,即尚未解决的问题,符合预期,对应的日志未发送至 Sentry,因为已禁用 Sentry,如图14

查看 Unresolved Issues,即尚未解决的问题,符合预期,对应的日志未发送至 Sentry,因为已禁用 Sentry

图14

18、再次重复第 15、16、17步骤,第15步骤的环境选择生产环境,发现对应的日志未发送至 Sentry,符合预期,因为已禁用 Sentry,如图15

再次重复第 15、16、17步骤,第15步骤的环境选择生产环境,发现对应的日志未发送至 Sentry,符合预期,因为已禁用 Sentry

图15

原创文章,作者:kepupublish,如若转载,请注明出处:https://blog.ytso.com/tech/webdev/181207.html

(0)
上一篇 2021年10月31日 19:06
下一篇 2021年10月31日 19:06

相关推荐

发表回复

登录后才能评论