Блог Горошко Андрея 1C-Битрикс Логирование по стандарту PSR-3: Класс Bitrix\Main\Diag\Logger

Логирование по стандарту PSR-3: Класс Bitrix\Main\Diag\Logger

В последних версиях ядра Битрикс внедрил поддержку стандарта PSR-3 для логирования.

Это позволяет использовать унифицированный подход к записи логов, настраивать уровни важности и форматирование.

1. Настройка логгера

Логгеры настраиваются в файле .settings.php.

// /bitrix/.settings.php
'loggers' => [
    'value' => [
        'main.mail' => [ // Логгер для почты
            'className' => '\\Bitrix\\Main\\Diag\\FileLogger',
            'constructorParams' => [
                'file' => $_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main.mail.log',
            ],
            'level' => 'debug',
        ],
        'my.module' => [ // Наш кастомный логгер
            'className' => '\\Bitrix\\Main\\Diag\\FileLogger',
            'constructorParams' => [
                'file' => $_SERVER['DOCUMENT_ROOT'].'/local/logs/my.module.log',
            ],
            'level' => 'info', // Писать все, начиная с info (info, warning, error...)
        ],
    ],
    'readonly' => true,
],

2. Использование в коде

Получаем логгер по его имени и пишем сообщения.

use Bitrix\Main\Diag\Logger;

$logger = Logger::create('my.module');

if ($logger) {
    // Информационное сообщение
    $logger->info('Модуль запущен', ['user_id' => 1]);

    // Предупреждение
    $logger->warning('Память почти заполнена', ['memory' => memory_get_usage()]);

    try {
        // ... код ...
    } catch (\Exception $e) {
        // Ошибка с передачей исключения в контекст
        $logger->error('Произошел сбой: {message}', [
            'message' => $e->getMessage(),
            'exception' => $e
        ]);
    }
}

Преимущества Logger перед AddMessage2Log

  1. Уровни: Вы можете писать debug логи в коде, но в .settings.php выставить уровень error, и отладочная информация не будет засорять боевой лог.
  2. Контекст: Массив данных [‘user_id’ => 1] передается отдельно от сообщения, что позволяет лог-процессорам (например, ELK stack) индексировать эти поля.
  3. Плейсхолдеры: Можно использовать {name} в сообщении, и они заменятся значениями из контекста.

Вывод:
Bitrix\Main\Diag\Logger — это современный профессиональный инструмент.

Используйте его для всех новых разработок, чтобы иметь полный контроль над тем, что, куда и когда пишется в журналы событий.

Bitrix Logger, PSR-3, логирование D7, запись логов, FileLogger, контекст лога, форматирование логов.

Похожая задача в бизнесе?

Помогу автоматизировать процессы и внедрить ИИ

Меня зовут Андрей Горошко. Я Full-stack разработчик и эксперт по 1С-Битрикс. Настраиваю CRM Битрикс24, разрабатываю защищенные API и создаю умных ИИ-агентов для автоматизации рутины.

Добавить комментарий

Related Post

Разработка интернет-магазина на 1С-Битрикс с быстрой покупкой в 1 кликРазработка интернет-магазина на 1С-Битрикс с быстрой покупкой в 1 клик

Реализация функционала «с быстрой покупкой в 1 клик» на платформе 1С-Битрикс позволяет кардинально повысить конверсию магазина, автоматизировать рутинные операции менеджеров и предоставить покупателям безупречный сервис. мгновенная фиксация лида в Битрикс24

Очистка базы данных 1С-Битрикс от мусора, старых сессий и логовОчистка базы данных 1С-Битрикс от мусора, старых сессий и логов

Профессиональная поддержка, модернизация и оптимизация производительности сайта на 1С-Битрикс — это гарантия высокой конверсии, стабильности продаж и защиты от киберугроз. Услуга «Очистка базы данных 1С-Битрикс от мусора, старых сессий и

Как использовать метод SDK sale.propertyvariant.add в Битрикс24Как использовать метод SDK sale.propertyvariant.add в Битрикс24

Эффективная интеграция и кастомизация функционала в Битрикс24 часто требует работы на уровне API. Сегодня мы подробно рассмотрим «Как использовать метод SDK sale.propertyvariant.add в Битрикс24». Вы узнаете экспертные методики работы с