Что такое "канал" в Monologger? - PullRequest
0 голосов
/ 27 ноября 2018

Я пытаюсь выучить монолог и следую этому уроку: https://stackify.com/php-monolog-tutorial/

Там написано

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

$ logger = new MonologLogger ('channel-name');$ app-> container-> logger = $ logger;

В приведенном выше примере 'channel-name' должно быть включено в каждую запись журнала.Таким образом, вы можете легко искать и фильтровать записи;создать другой канал для каждого компонента.Примерами этих каналов могут быть «база данных», «безопасность», «бизнес» и др.

Так что же такое каналы и как их использовать?

Ответы [ 2 ]

0 голосов
/ 27 ноября 2018

Проще говоря, вы можете определить канал как отдельный файл журнала.

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

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

В строке, которую вы ссылаетесь на

 $logger = new MonologLogger('channel-name'); 
 $app->container->logger = $logger;

Вы указываетеканал в конструкторе Monologger.

Каждый раз, когда вы используете этот объект $ logger, он будет записывать в файл, указанный вами при настройке канала.Ниже приведен пример из документации Symfony для конфигурации канала

https://symfony.com/doc/current/logging/channels_handlers.html#switching-a-channel-to-a-different-handler

   monolog:
      handlers:
          security:
             # log all messages (since debug is the lowest level)
             level:    debug
             type:     stream
             path:     '%kernel.logs_dir%/security.log'
             channels: [security]

В этом случае вы должны сделать это в своем коде, чтобы использовать канал

 $logger = new MonologLogger('security');

И тогда вы будете входить в «security.log» с типом «stream» ошибок уровня «debug».

0 голосов
/ 27 ноября 2018

«Канал» здесь не является общей концепцией PHP, это просто термин, который монолог использует для категории сообщений, которые вы хотите регистрировать.

С документация по использованию монолога :

Вы можете создать множество регистраторов, каждый из которых определяет канал (например, db, request, router, ..) и каждый из них объединяет различные обработчики, которые могут использоваться совместно или нет.Канал отражается в журналах и позволяет легко просматривать или фильтровать записи.

Далее по этой странице есть еще один раздел по использованию каналов :

Каналы - отличный способ определить, к какой части приложения относится запись.Это полезно в больших приложениях (и используется MonologBundle в Symfony).

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

...