vadimpalgov/monolog-bitrix

Bitrix CMS 的 Monolog 适配器

dev-master 2023-12-31 10:06 UTC

This package is auto-updated.

Last update: 2024-09-30 01:47:02 UTC


README

Build Status Latest Stable Version Total Downloads License

Monolog 的 Bitrix CMS 适配器

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

基于 MonologAdapter 的包

安装

使用 Composer 下载库

composer require vadimpalgov/monolog-bitrix

init.php 文件中编写

<?php

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

使用

配置您的日志记录器

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

return array(
    'exception_handling' => array(
        'value' => array(
            'log' => array(
                'class_name' => '\VadimPalgov\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' => '\VadimPalgov\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' => '\VadimPalgov\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' => '\VadimPalgov\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 >= 7.4
  • Bitrix CMS >= 16.5.6