Log4j2 monitorInterval производительность
В log4j2 атрибут monitorInterval
доступен для элемента Configuration
. Я попытался прочитать о влиянии этого атрибута на производительность, но нигде не смог найти ни одного источника. Итак, у меня есть несколько вопросов относительно атрибута monitorInterval
.
-
Я хотел бы знать, какое влияние на производительность он оказывает, указывая малое значение как
5
(5 секунд) и большое значение, скажем, как3000
(5 минут) в элементеConfiguration
? -
Что именно происходит? Означает ли это, что он будет автоматически обнаруживать каждый раз, когда проходит определенный интервал времени?
-
Есть ли способ заставить log4j2 перезагрузить конфигурацию сразу через конфигурационные файлы (XML, JSON, YAML, PROPERTIES), а не программную реконфигурацию?
1 ответ:
Раньше было так, что было небольшое влияние на производительность. В частности, Log4j2 иногда проверяет время
lastModified
файла конфигурации при обработке события журнала. Он был достаточно умен, чтобы не делать этого на каждом событии, но только когда прошло достаточно времени с момента последней проверки: только один раз каждыеmonitorInterval
секунды.Начиная с Log4j 2.5 он отличается: есть фоновый поток наблюдателя, который иногда просыпается и проверяет время
lastModified
файла конфигурации. Так что теперь нет никакого влияния на производительность ведения журнала. (Причиной этого изменения была на самом деле не производительность, а точность: ранее файлы не переворачивались, если что-то не было зарегистрировано, что могло быть намного позже времени переворота.) См. https://issues.apache.org/jira/browse/LOG4J2-1202 Подробнее.Для принудительной перезагрузки конфигурации, помимо прикосновения к файлу конфигурации и программной реконфигурации, вы можете использовать интерфейс JMX. Также взгляните на конфигуратор класс в log4j-ядре. Он имеет несколько методов, которые приводят к реконфигурации.