markiros/monolog-adapter

Bitrix CMS的Monolog适配器

1.0.0 2024-07-29 10:47 UTC

This package is auto-updated.

Last update: 2024-09-29 11:22:06 UTC


README

Build Status Latest Stable Version Total Downloads License

Monolog适配器用于Bitrix CMS

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

安装

使用Composer下载库

composer require markiros/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