我正在使用 log4j-web
依赖项在 tomcat
环境中正确(取消)注册 log4j2
记录器:
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-web</artifactId>
</dependency>
问题:然后我不能再使用 WebLookup
如下:
<RollingRandomAccessFile name="TEST" fileName="${web:rootDir}-${web:majorVersion}-application.log" ..>
当我排除 log4j-web
依赖项时,weblookup 工作正常。但是我必须使用依赖项来进行正确的 tomcat 日志记录。
可能查找初始化太晚了。 那么,我怎样才能继续使用网络查找呢?
最佳答案
一种可能的解决方案:在记录器初始化之前 Hook ,并填充映射参数以在 log4j2.xml 配置中使用:
@SpringBootApplication
public class App extends SpringBootServletInitializer {
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
MainMapLookup.setMainArguments(new String[] {"thekey", "thevalue"});
super.onStartup(servletContext);
}
}
用法:
fileName="${main:thekey}-..."
关于java - 如何将 WebLookup 与 log4j-web 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36998917/