我有一个log4j2.xml配置文件,它应该在java代码启动Web应用程序期间动态设置日志记录路径。
<Properties>
<property name="path">{web:attr.logpath}</property>
</Properties>
因此我有以下配置文件:
@Configuration
@Order(Ordered.HIGHEST_PRECEDENCE)
public class LogConfig extends SpringBootServletInitializer {
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
servletContext.addListener(Log4jConfigListener.class);
servletContext.setAttribute("logpath", "d:/testpath");
super.onStartup(servletContext);
}
}
问题:当输入onStartup()
时,log4j初始化已经结束,我收到log4j路径无效的消息。
如何在设置属性后延迟log4j初始化?
答案 0 :(得分:0)
Spring使用日志记录。 Log4j必须首先初始化,否则最终会导致spring无法登录。通常,这将使用Log4j的Log4jServletContextListener并在web.xml中将logpath设置为config param来处理。