Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/bitrix-expert/monolog-adapter

Monolog adapter for Bitrix CMS
https://github.com/bitrix-expert/monolog-adapter

Last synced: about 2 months ago
JSON representation

Monolog adapter for Bitrix CMS

Awesome Lists containing this project

README

        

# Monolog adapter for Bitrix CMS

[![Build Status](https://travis-ci.org/bitrix-expert/monolog-adapter.svg)](https://travis-ci.org/bitrix-expert/monolog-adapter)
[![Latest Stable Version](https://poser.pugx.org/bitrix-expert/monolog-adapter/v/stable)](https://packagist.org/packages/bitrix-expert/monolog-adapter)
[![Total Downloads](https://poser.pugx.org/bitrix-expert/monolog-adapter/downloads)](https://packagist.org/packages/bitrix-expert/monolog-adapter)
[![License](https://poser.pugx.org/bitrix-expert/monolog-adapter/license)](https://packagist.org/packages/bitrix-expert/monolog-adapter)

[Monolog](https://github.com/Seldaek/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:

```bash
composer require bitrix-expert/monolog-adapter
```

Write in the [`init.php`](https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=43&LESSON_ID=2916) file:

```php
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:
```php
'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:
```php
'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
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:

![Event Log](event-log.png)

## Requirements

* PHP >= 5.3
* Bitrix CMS >= 16.5.6