簡體   English   中英

如何在Web應用程序啟動時設置log4j路徑?

[英]How to set log4j path on startup in web app?

我有一個log4j2.xml配置文件,它應該通過java代碼在Web應用程序啟動期間動態設置日志記錄路徑。

log4j2.xml:

<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初始化?

Spring使用日志記錄。 Log4j必須首先初始化,否則最終會導致spring無法登錄。 通常,這將使用Log4j的Log4jServletContextListener並在web.xml中將logpath設置為config param來處理。

請參閱http://logging.apache.org/log4j/2.x/manual/webapp.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM