出现以下错误消息。
ERROR Recursive call to appender file_appender
Run Code Online (Sandbox Code Playgroud)
Log4j2 - AppenderControl.isRecursiveCall()
@PerformanceSensitive
private boolean isRecursiveCall() {
if (recursive.get() != null) {
appenderErrorHandlerMessage("Recursive call to appender ");
return true;
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
我什至找到了上面的代码。有什么办法可以解决出现的错误吗?
任何帮助将不胜感激。
我发现了一些问题。
消息“错误递归调用附加器”需要更多诊断信息。- https://issues.apache.org/jira/browse/LOG4J2-2738
我解决了这个问题。
log4j2.xml
<Appenders>
<Routing>
<Routes>
<Route>
<RolingFile ... >
</Route>
</Routes>
</Routing>
</Appenders>
Run Code Online (Sandbox Code Playgroud)
附加程序中的正常日志记录可能会创建无限递归,Log4j 将检测到该无限递归并导致递归事件被忽略。
https://logging.apache.org/log4j/log4j-2.2/manual/configuration.html
如果状态属性设置为错误,则只有错误消息才会写入控制台。这使得排除配置错误成为可能。例如,如果将上面的配置更改为将状态设置为错误,并且记录器声明为:
<logger name="EventLogger" level="info" additivity="false">
<AppenderRef ref="Routng"/>
</logger>
Run Code Online (Sandbox Code Playgroud)