@Div100

Проблема с logger в symfony, что не так?

Подключаю логгер следующим образом, но он все равно не пишет в файл, а только в консоль:

#app/config/config_dev.yml
monolog:
    handlers:
        search:
            type: stream
            level: error
            path: "%kernel.logs_dir%/search_log.log"
            channels: [search]
        main:
            type: stream
            path: "%kernel.logs_dir%/%kernel.environment%.log"
            level: debug
            channels: [!event, !search]
        console:
            type:   console
            channels: [!event, !doctrine, !search]


#MyBundle/Resources/config/services.yml
services:
    app.logger_search:
            class: Symfony\Bridge\Monolog\Logger
            arguments: ["@logger"]
            tags:
                - {name: monolog.logger, channel: search}


Теперь пытаюсь проверить его.
#MyController.php

/**
     * @Route("/test")
     */
    public function test()
    {
        $this->get("app.logger_search")->error("Test");
        return $this->json("test");
    }


Но вместо того чтобы писать в указанный файл, он пишет только в консоль, в которой я запустил сервер
php bin/console server:run

Что не так?
  • Вопрос задан
  • 1231 просмотр
Пригласить эксперта
Ответы на вопрос 2
skobkin
@skobkin
Гентушник, разработчик на PHP и Symfony.
Посмотрите настройки Monolog в config_dev.yml.
У вас там handler указан console.
Ответ написан
Комментировать
@dizzy7
Отдельный сервис создавать не нужно. В конфигурации логгера:
monolog:
   channels: ["main", "search"]
   handlers: ...


И для логирования запрашиваете сервис @monolog.logger.search
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы