За последние 24 часа нас посетили 17778 программистов и 1628 роботов. Сейчас ищут 1039 программистов ...

Практика использования Symfony2 Monolog

Тема в разделе "Прочие вопросы по PHP", создана пользователем Lewik, 22 июн 2014.

  1. Lewik

    Lewik Активный пользователь

    С нами с:
    5 авг 2009
    Сообщения:
    20
    Симпатии:
    0
    Адрес:
    Черноголовка
    1. Остается ли на проде логирование с уровня debug? (Мне кажется надо оставлять с info или выше)
    2. Остается ли в коде после разработки отправка debug-сообщений? При разработке они указываются где надо и так и остаются на будущее?
    2.1. Если да: Отключают ли каким либо образом debug-логирование при разработке, чтобы оно не мешало в логе?

    Гуглил, не нашел. Ответ не должен быть истиной в последней инстанции, напишите как вы сами это делаете?


    Еще вот такой вопрос: логи идут с вот таким заголовком:
    Если его отправляет соответствующая "часть", то это security.INFO, event.DEBUG и т.п.
    Если я его отправляю - то app.*
    Это называется channel

    Вот интересно как фильтровать сообщения по этим app.* на уровне настройки окружения. (Для разработки не удобно смотреть сразу общий лог, хочется разделить его) Ну или решать через просмотр логов: viewtopic.php?f=26&p=389172

    Код (Text):
    1. monolog:
    2.     handlers:
    3.         main:
    4.             type: group
    5.             members: [streamed_all, streamed_info]
    6.         streamed_all:
    7.             type:  stream
    8.             path:  "%path_to_common_log%"
    9.             level: debug
    10.         streamed_info:
    11.             type:  stream
    12.             path:  "%path_to_info_log%"
    13.             level: info
    14.             channels: [app]
    15.         firephp:
    16.             type:  firephp
    17.             level: info
    18.         chromephp:
    19.             type:  chromephp
    20.             level: info
    Упорно не работает
    Пишет в streamed_info и app.INFO и request.INFO
    Надо писать все app.*

    Код (Text):
    1.         streamed_info:
    2.             type:  stream
    3.             path:  "%path_to_info_log%"
    4.             channels: [app]
    Пробовал, пишет вообще все.
     
  2. Lewik

    Lewik Активный пользователь

    С нами с:
    5 авг 2009
    Сообщения:
    20
    Симпатии:
    0
    Адрес:
    Черноголовка
    Всем спасибо, разобрался:

    Код (Text):
    1. monolog:
    2.     handlers:
    3.         main:
    4.             type:  stream
    5.             path:  "%path_to_common_log%"
    6.             level: debug
    7.         streamed_info:
    8.             type:  stream
    9.             path:  "%path_to_info_log%"
    10.             level: info
    11.             channels:
    12.                 type: inclusive
    13.                 elements:
    14.                     - app
    Надо было убрать групповой логгер и сконфигурировать streamed_info как показано выше. При это будет логировать только нужный канал. Если указать level, то все сооббщения этого канала будут отфильтрованы по указанному уровню.
    Еще походу можно
    Код (Text):
    1.  
    2.             channels:
    3.                 type: exclusive
    4.                 elements:
    5.                     - !app
    Который понятно что делает. При exclusive элементы elements должны начинаться c ! иначе получите эксепшн.