farit-slv / monolog-adapter
Monolog adapter for Bitrix CMS
1.1.1
2023-11-07 15:27 UTC
Requires
- php: >=8.0
- monolog/monolog: 1.* || 2.* || 3.*
- theorchard/monolog-cascade: 0.*
This package is auto-updated.
Last update: 2024-11-07 17:52:56 UTC
README
Monolog adapter for Bitrix CMS:
- Bitrix handler and formatter for Monolog.
- Handler for logger uncaught exceptions of the Bitrix.
- Configuration loggers with using the
.settings.php
.
Installation
Download the library using Composer:
composer require farit-slv/monolog-adapter
Write in the init.php
file:
<?php \Bex\Monolog\MonologAdapter::loadConfiguration();
Usage
Configuring your loggers
Configurate the logger in the .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 ) );
Use rules property for filter logging uncaught exceptions by instanceof logic:
'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 )
Use context property for change log debug data format:
'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 )
Write logs
Write logs from your application. For example, write logs when created new message from the feedback form:
<?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 ));
The result in the Control Panel of Bitrix:
Requirements
- PHP >= 5.3
- Bitrix CMS >= 16.5.6