bitrix-expert / monolog-adapter
Bitrix CMS 的 Monolog 适配器
1.0.0
2016-10-14 09:35 UTC
Requires
- php: >=5.3
- monolog/monolog: 1.*
- theorchard/monolog-cascade: ~0.2
This package is auto-updated.
Last update: 2024-09-19 20:32:00 UTC
README
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 控制面板中的结果
需求
- PHP >= 5.3
- Bitrix CMS >= 16.5.6