Появилось следующее сообщение об ошибке.
ERROR Recursive call to appender file_appender
Log4j2 - AppenderControl.isRecursiveCall ()
@PerformanceSensitive
private boolean isRecursiveCall() {
if (recursive.get() != null) {
appenderErrorHandlerMessage("Recursive call to appender ");
return true;
}
return false;
}
Я даже нашел код выше. Есть ли способ решить возникшую ошибку?
Любая помощь будет принята с благодарностью.
http://apache-logging.6191.n7.nabble.com/Recursive-call-to-appender-stackoverflow-error-td60433.html
https://issues.apache.org/jira/browse/LOG4J2-2738
Log4j2.xml
<Appenders>
<Routing>
<Routes>
<Route>
<RolingFile ... >
</Route>
</Routes>
</Routing>
</Appenders>
Обычное ведение журнала в приложениях может создать бесконечную рекурсию, которую Log4j обнаружит и приведет к игнорированию рекурсивных событий.
https://logging.apache.org/log4j/log4j-2.2/manual/configuration.html
Если для атрибута состояния установлено значение error, в консоль будут записываться только сообщения об ошибках. Это делает возможным устранение ошибок конфигурации. Например, если приведенная выше конфигурация была изменена так, чтобы статус был установлен на ошибку, а объявление регистратора было таким:
<logger name="EventLogger" level="info" additivity="false">
<AppenderRef ref="Routng"/>
</logger>
1 ответ
Эта ошибка возникает, когда приложение пытается что-то записать, событие перенаправляется приложению, приложение пытается что-то записать, и это событие перенаправляется обратно тому же приложению. Это может закончиться бесконечным циклом, который вызовет исключение переполнения стека. Вместо этого Log4j это обнаруживает и предотвращает. Способ избежать этого - добавить регистратор событий, вызывающих проблему, и либо отключить их, либо направить их другому приложению.
Похожие вопросы
Новые вопросы
java
Java — это высокоуровневый объектно-ориентированный язык программирования. Используйте этот тег, если у вас возникли проблемы с использованием или пониманием самого языка. Этот тег часто используется вместе с другими тегами для библиотек и/или фреймворков, используемых разработчиками Java.