Файл server.xml, который управляет запуском контейнера сервлетов Apache Tomcat, содержит атрибут отладки почти для каждого основного компонента. Атрибут отладки является более или менее подробным в зависимости от числа, которое вы ему даете, ноль - наименьшее значение, а 99 - наиболее подробное. Как уровень отладки влияет на скорость Tomcat при обслуживании большого количества пользователей? Я предполагаю, что ноль - это быстро, а 99 - относительно медленнее, но так ли это. Если не выдает ошибок, какое это имеет значение?




Обширное ведение журнала занимает значительное время. Вот почему так важно поставить
if (log.isDebugEnabled())
log.debug(bla_bla_bla);
поэтому я бы сказал, что настройка вашего рабочего сервера на подробные сведения серьезно повлияет на производительность. Я предполагаю, что вы говорите о производственном сервере, поскольку вы говорите, что он должен обслуживать большое количество пользователей.
Ведение журнала отвечает не только за сообщение об ошибках, но и за отслеживание того, что происходит. В некоторых случаях код не может работать внутри отладчика, тогда единственным вариантом является ведение журнала.
Вот почему вывод журнала может быть очень подробным. И я действительно иметь в виду что. Я помню, как однажды установил уровень журнала Каталины на TRACE и в итоге получил файл журнала размером в несколько мегабайт. Это был перед, сервер вообще не получал попаданий. Это была огромная производительность. Считается за несколько секунд.
Если вам не нужно вести журнал для самого Tomcat, не активируйте его ни на одном из его компонентов. Обычно вам нужно возиться с уровнем логирования Tomcat, только если вы подозреваете ошибку либо в вашей настройке, либо в самом Tomcat.
Для ваших собственных приложений измерьте стоимость журналирования с помощью профилировщика или просто стресс-тестирования. Какими бы ни были ваши результаты, я бы не рекомендовал запускать приложение с высоким уровнем логирования в производственной среде. Мой текущий проект сбрасывает около мегабайта на запрос при настройке TRACE, только около трех-четырех строк в INFO и ничего в WARNING (если все идет хорошо :-). Рекомендую не более чем самое необходимое ведение журнала. На самом деле ваше приложение должно просто сообщать о запуске, завершении работы и сбое и - самое большее - по одной строке на запрос.
Честно говоря, нет. вам нужно только isDebugEnabled () проверять, являются ли данные журнала очень тяжелыми или сложными для построения. Debug () или warn () регистратора или любые другие методы обычно эффективно реализуются, чтобы проверить, подходят ли они, а затем немедленно выйти, без особых накладных расходов.