artack/monolog-jira-handler

此包已弃用且不再维护。未建议替代包。

Monolog 的 JIRA 处理程序

0.3.0 2019-02-26 15:11 UTC

This package is auto-updated.

Last update: 2022-05-19 08:09:29 UTC


README

注意: 此存储库已存档,因此为只读。

Monolog 的 JIRA 处理程序

Build Status Scrutinizer Quality Score Scrutinizer Coverage Latest Release MIT License Total Downloads

由瑞士苏黎世的 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文件