Много ли отладочных журналов замедляет работу моего (grails) веб-приложения? - PullRequest
2 голосов
/ 26 ноября 2010

В настоящее время мое веб-приложение grails записывает в файл большое количество информации об отладке практически для каждого запроса.

По вашему опыту, следует ли отключить это, прежде чем переходить в рабочее состояние (что усложнитотслеживать ошибки, конечно), или это почти не влияет на производительность моего приложения, даже если одновременно много пользователей?

Ответы [ 5 ]

5 голосов
/ 26 ноября 2010

Регистрация определенно замедляет работу. Запись в файлы особенно медленная. Даже процесс создания строк для регистрации будет иметь негативное влияние на производительность. Я настоятельно рекомендую вам отключить эту запись. Если у вас есть проблемы с вашим приложением, тогда вам лучше отлаживать в среде разработки, чем на производстве.

4 голосов
/ 26 ноября 2010

Я согласен с @tzhx. Я добавлю только 2 балла:

1) Вы, вероятно, хотите разделить свои записи журнала в соответствии с их важностью, используя log.info, .warn, .error, а затем в своей конфигурации внести изменения, чтобы в производственной среде вы использовали соответствующий уровень для различных пакетов. Вы, вероятно, захотите некоторый базовый уровень ведения журнала, даже в prod.

2) Определенно не регистрируйте sql в prod. Если у вас есть проблема, зарегистрируйте sql в dev или в своей среде qa, чтобы определить проблему.

1 голос
/ 27 ноября 2010

Как уже говорилось ранее, это может отрицательно сказаться на производительности, если вы записываете много информации в свой файл.Я рекомендую вам сделать следующее:

  1. Большая часть отладочной информации должна быть заключена в оператор, такой как if (log.debugEnabled) log.debug "This is a debug log line".Обратите внимание на использование if (log.debugEnabled), которое важно, если вы не хотите, чтобы ваши отладочные сообщения оценивались даже в производственной среде
  2. Установить плагин app-info .Этот плагин позволяет вам изменять уровни ведения журнала (например, INFO и DEBUG) во время выполнения и в отличие от плагина ведения журнала времени выполнения, он предоставляет другую информацию, полезную для отладки (свойства конфигурации, использование памяти ...)
1 голос
/ 27 ноября 2010

Согласен с обоими предыдущими ответами. Обычно я устанавливаю уровень журнала в WARN или ERROR в производстве. Если вам нужно настроить уровни ведения журнала во время выполнения, вы можете использовать плагин http://www.grails.org/plugin/runtime-logging. Это позволяет увеличить регистрацию, чтобы отследить проблемы, возникающие только на производстве. После анализа ошибок вы можете вернуть уровень ведения журнала к их нормальному уровню.

Если ваш сценарий использования требует расширенной регистрации (например, по причинам, связанным с журналом аудита и т. Д.), У вас должны быть отдельные диски для регистрации или записи на какое-то выделенное удаленное устройство.

0 голосов
/ 06 сентября 2011

Регистрация сама по себе влечет за собой затраты производительности.

Но знаете ли вы, что ДЕЙСТВИТЕЛЬНО может испортить производительность вашего приложения? Консольное ведение журнала

...