Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Практика использования Symfony2 Monolog
Форумы портала PHP.SU » » CMS и фреймворки » Практика использования Symfony2 Monolog

Страниц (1): [1]
 

1. Lewik - 22 Июня, 2014 - 10:02:29 - перейти к сообщению
1. Остается ли на проде логирование с уровня debug? (Мне кажется надо оставлять с info или выше)
2. Остается ли в коде после разработки отправка debug-сообщений? При разработке они указываются где надо и так и остаются на будущее?
2.1. Если да: Отключают ли каким либо образом debug-логирование при разработке, чтобы оно не мешало в логе?

Гуглил, не нашел. Ответ не должен быть истиной в последней инстанции, напишите как вы сами это делаете?
2. Ch_chov - 22 Июня, 2014 - 11:21:45 - перейти к сообщению
Обычно на рабочем сайте логируют только ошибки и события которые могут быть интересны администратору сайта (регистрация нового пользователя, запуск крона и т.д.). Логирование отладочных сообщений это лишняя трата ресурсов. Можно каждый раз перед отправкой этих сообщений проверять какую нибудь опцию конфигурации, хотя я думаю это не обязательно. Просто настройте уровни и каналы логирования для каждого окружения.
3. Lewik - 22 Июня, 2014 - 11:28:24 - перейти к сообщению
Я в целом согласен. Сам считаю что логирование на проде должно быть того, что требуется (как мне кажется это от info и выше).
И отправка в коде должна оставаться, только в конфиге окружения отключаться.

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

Вот интересно как фильтровать сообщения по этим app.* на уровне настройки окружения. (Для разработки не удобно смотреть сразу общий лог, хочется разделить его) Ну или решать через просмотр логов: http://forum.php.su/topic.php?fo...ostid=1403358668
4. Ch_chov - 22 Июня, 2014 - 11:44:56 - перейти к сообщению
Свой канал можно создать.
http://symfony[dot]com/doc/current/c[dot][dot][dot]ls_handlers[dot]html
5. Lewik - 22 Июня, 2014 - 11:59:11 - перейти к сообщению
Да, уже нагуглил. Но я писать в лог фильтруя по каналу. Нашел что можно запилить свой обработчик, но думаю должна быть настройка на это дело.

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. monolog:
  3.     handlers:
  4.         main:
  5.             type: group
  6.             members: [streamed_all, streamed_info]
  7.         streamed_all:
  8.             type:  stream
  9.             path:  "%path_to_common_log%"
  10.             level: debug
  11.         streamed_info:
  12.             type:  stream
  13.             path:  "%path_to_info_log%"
  14.             level: info
  15.             channels: [app]
  16.         firephp:
  17.             type:  firephp
  18.             level: info
  19.         chromephp:
  20.             type:  chromephp
  21.             level: info
  22.  


Упорно не работает
Пишет в streamed_info и app.INFO и request.INFO
Надо писать все app.*
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2.         streamed_info:
  3.             type:  stream
  4.             path:  "%path_to_info_log%"
  5.             channels: [app]
  6.  

Пробовал, пишет вообще все.
(Добавление)
Всем спасибо, разобрался:

CODE (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
  15.  


Надо было убрать групповой логгер и сконфигурировать streamed_info как показано выше. При это будет логировать только нужный канал. Если указать level, то все сооббщения этого канала будут отфильтрованы по указанному уровню.
Еще походу можно
CODE (text):
скопировать код в буфер обмена
  1.  
  2.             channels:
  3.                 type: exclusive
  4.                 elements:
  5.                     - !app
  6.  

Который понятно что делает. При exclusive элементы elements должны начинаться c ! иначе получите эксепшн.

 

Powered by ExBB FM 1.0 RC1