Monolog не записывает в правильный файл журнала

Я использую Symfony 4 и хочу создать выделенный канал для многих типов журналов: это моя конфигурация для каналов и обработчиков:

 monolog:
  channels: ["channel1", "channel2"]

  handlers:
    channel1:
      level: debug
      type:  stream
      path:  "%kernel.logs_dir%/channel1.log"
      channels: ["channel"]

    channel2:
      level: debug
      type:  stream
      path:  "%kernel.logs_dir%/channel2.log"
      channels: ["channel2"]

Затем в моем сервисе для записи лога я ввожу кастомный

 services:
  _defaults:
    autowire: true
    autoconfigure: true
  Infrastructure\Logger\Channel1Logger:
    arguments:
       - '@monolog.logger.channel1'

  Infrastructure\Logger\Channel2Logger:
    arguments:
      - '@monolog.logger.channel2'

Но все мои логи напрямую записываются в канал "приложение", Когда я отлаживаю контейнер, я вижу список своих служб Что я делаю неправильно?

Я нашел ошибку. По умолчанию файл config/services.yaml переопределяет все настройки из внешних файлов. Вот почему мой журнал продолжает быть на канале по умолчанию (автопроводка). Чтобы избежать этого, вы должны исключить пользовательские файлы логгеров из автоподключения.

JessGabriel 20.06.2019 14:13

Не могли бы вы скопировать свой комментарий в новый ответ, а затем пометить его как выбранный? Хорошая находка, кстати, приятно знать.

alx 22.06.2019 22:42

Я вставил это как комментарий

JessGabriel 24.06.2019 07:25
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
3
3
851
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я нашел ошибку. По умолчанию файл config/services.yaml переопределяет все настройки из внешних файлов. Вот почему мой журнал продолжает быть на канале по умолчанию (автопроводка). Чтобы избежать этого, вы должны исключить пользовательские файлы логгеров из автоподключения.

Другие вопросы по теме