artack / monolog-jira-handler
此包已弃用且不再维护。未建议替代包。
Monolog 的 JIRA 处理程序
0.3.0
2019-02-26 15:11 UTC
Requires
- php: ^7.1.3
- ext-json: *
- monolog/monolog: ^1.0
- php-http/client-common: ^2.0
- php-http/client-implementation: ^1.0
- php-http/discovery: ^1.0
- php-http/httplug: ^2.0
- php-http/message: ^1.0
- php-http/message-factory: ^1.0
- psr/http-message: ^1.0
Requires (Dev)
- nyholm/psr7: ^1.1
- php-http/guzzle6-adapter: ^2.0
- php-http/mock-client: ^1.3
- phpunit/phpunit: ^7.0
- symfony/var-dumper: ^4.2
This package is auto-updated.
Last update: 2022-05-19 08:09:29 UTC
README
注意: 此存储库已存档,因此为只读。
Monolog 的 JIRA 处理程序
由瑞士苏黎世的 ARTACK WebLab GmbH 开发。
介绍
此处理程序会将日志写入 JIRA 实例。处理程序将计算日志数据的哈希值(除时间敏感数据外)。然后,它将查询 JIRA REST API 以确定是否已存在具有相应哈希值的 JIRA 问题。如果是,则处理程序将不执行任何操作。如果没有匹配的哈希值的问题,处理程序将创建一个包含日志条目内容的新的问题。
安装
您可以通过 Composer 安装它。
$ composer require artack/monolog-jira-handler
用法
在此配置下,每个日志条目都会被传输到 JIRA。
<?php $jiraHandler = new JiraHandler('your.jira.host', 'username', 'password', 'project = MYAPP AND resolution = Unresolved', 'Loghash', 'MYAPP', 'Bug', true, 'Logcount'); $loger = new Logger('name'); $loger->pushHandler($jiraHandler); $loger->error('something went wrong...');
如果有多个日志条目,首先缓冲日志条目然后再一次性将它们全部传输到 JIRA 更有意义。
<?php $jiraHandler = new JiraHandler('your.jira.host', 'username', 'password', 'project = MYAPP AND resolution = Unresolved', 'Loghash', 'MYAPP', 'Bug', true, 'Logcount'); $bufferHandler = new \Monolog\Handler\BufferHandler($jiraHandler); $fingersCrossedHandler = new \Monolog\Handler\FingersCrossedHandler($bufferHandler); $loger = new Logger('name'); $loger->pushHandler($fingersCrossedHandler); // log records $loger->debug('d1'); $loger->debug('d2'); $loger->debug('d3'); $loger->info('I am somehow nice to know'); $loger->error('something went wrong...');
在 Symfony 项目中
在 Symfony 项目中使用此自定义处理程序很简单。首先配置 JiraHandler 作为服务。
# config/services.yaml services: # ... Artack\Monolog\JiraHandler\JiraHandler: arguments: - 'your.jira.host' - 'username' - 'password' - 'project = MYAPP AND resolution = Unresolved' - 'Loghash' - 'MYAPP' - 'Bug - true - 'Logcount'
其次将配置好的服务注册为 Monolog 处理程序。
# config/packages/{dev|prod|...}/monolog.yaml monolog: handlers: main: type: fingers_crossed action_level: error handler: grouped excluded_404s: # regex: exclude all 404 errors from the logs - ^/ grouped: type: group members: [stream, buffer] stream: type: stream path: "%kernel.logs_dir%/%kernel.environment%.log" level: debug buffer: type: buffer handler: jira jira: type: service id: Artack\Monolog\JiraHandler\JiraHandler # more handlers as you wish ...
处理程序配置
JiraHandler 有几个构造函数参数
$hostname
: 您的 JIRA 实例的域名(不包含协议,https:// 是强制性的)。$username
: 在其中创建问题(以及 JIRA REST API 上的任何其他操作)的用户名。$password
: 用于验证 JIRA 实例的密码。$jql
: 用于检查当前处理的日志条目是否已存在相关问题的 JQL。这允许在不同 PHP 项目中记录相同的错误,这些项目将在不同的 JIRA 项目中创建问题。$hashFieldName
: 存储日志条目 md5 哈希值的自定义字段名称。$projectKey
: 创建新问题时使用的项目密钥。$issueTypeName
: 创建新问题时使用的 issue 类型。$withComments
: (默认:false
)确定后续相同(相同哈希)的日志条目是否作为评论添加到已创建的问题中。$counterFieldName
: (默认:null
)如果设置,这是包含记录的日志条目数量的自定义字段名称。$httpClient
: (默认:null
)用于与 JIRA REST API 通信的 HTTP 客户端。任何 HTTPlug 客户端实现 都是允许的。如果没有指定,它将尝试自动发现合适的客户端。
许可证
本库遵循MIT许可证 - 有关详细信息,请参阅LICENSE文件