bitrix-expert/monolog-adapter

Bitrix CMS 的 Monolog 适配器

1.0.0 2016-10-14 09:35 UTC

This package is auto-updated.

Last update: 2024-09-19 20:32:00 UTC


README

Build Status Latest Stable Version Total Downloads License

Monolog 适配器为 Bitrix CMS

  • Bitrix 处理器和格式化器,用于 Monolog。
  • 处理 Bitrix 的未捕获异常。
  • 使用 .settings.php 配置日志记录器。

安装

使用 Composer 下载库

composer require bitrix-expert/monolog-adapter

init.php 文件中编写

<?php

\Bex\Monolog\MonologAdapter::loadConfiguration();

使用

配置你的日志记录器

.settings.php 中配置日志记录器

return array(
    'exception_handling' => array(
        'value' => array(
            'log' => array(
                'class_name' => '\Bex\Monolog\ExceptionHandlerLog',
                'settings' => array(
                    'logger' => 'app'
                ),
            ),
        ),
        'readonly' => false
    ),
    'monolog' => array(
        'value' => array(
            'handlers' => array(
                'default' => array(
                    'class' => '\Monolog\Handler\StreamHandler',
                    'level' => 'DEBUG',
                    'stream' => '/path/to/logs/app.log'
                ),
                'feedback_event_log' => array(
                    'class' => '\Bex\Monolog\Handler\BitrixHandler',
                    'level' => 'DEBUG',
                    'event' => 'TYPE_FOR_EVENT_LOG',
                    'module' => 'vendor.module'
                ),
            ),
            'loggers' => array(
                'app' => array(
                    'handlers'=> array('default'),
                ),
                'feedback' => array(
                    'handlers'=> array('feedback_event_log'),
                )
            )
        ),
        'readonly' => false
    )
);

使用规则属性通过 instanceof 逻辑过滤未捕获的异常日志

'exception_handling' => array(
    'value' => array(
        'log' => array(
            'class_name' => '\Bex\Monolog\ExceptionHandlerLog',
            'settings' => array(
                'logger' => 'app',
                'rules' => array(
                    'instanceof' => '\Vendor\Exception\UnloggedInterface', // or opposite: !instanceof
                )
            ),
        ),
    ),
    'readonly' => false
)

使用上下文属性更改日志调试数据格式

'exception_handling' => array(
    'value' => array(
        'log' => array(
            'class_name' => '\Bex\Monolog\ExceptionHandlerLog',
            'settings' => array(
                'logger' => 'app',
                'context' => function ($exception) {
                     return array(
                         'file' => $exception->getFile(),
                         'line' => $exception->getLine(),
                         'trace' => $exception->getTrace(),
                         'some_param' => $exception->getSomeParam(),
                     );
                 },
            ),
        ),
    ),
    'readonly' => false
)

写入日志

从你的应用程序写入日志。例如,当从反馈表创建新消息时写入日志

<?php

use Monolog\Registry;

$logger = Registry::getInstance('feedback');

// Write info message with context: invalid message from feedback
$logger->info('Failed create new message on feedback form', array(
    'item_id' => 21,
    'Invalid data' => $addResult->getErrorMessages(), // error savings
    'Form data' => $formRequest // data from feedback form
));

在 Bitrix 控制面板中的结果

Event Log

需求

  • PHP >= 5.3
  • Bitrix CMS >= 16.5.6