1. 程式人生 > >Spring Boot lo4j日誌不顯示在控制檯解決方法

Spring Boot lo4j日誌不顯示在控制檯解決方法

  本人使用spring boot搭建專案,跑是跑起來了,但是日誌不輸出到控制檯,導致開發很不方便,到網上找了很多帖子也沒有具體的一個解決方案,然後自己考慮了一個解決方案,歡迎一起交流,廢話不多說直接上程式碼了:

方案1:
 直接在web.xml中加入一下程式碼:
   <listener>
        <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
    </listener>
    <context-param>
        <param-name>log4jConfigLocation</param-name>
        <param-value>classpath:log4j.properties</param-value>
    </context-param>

但是個人覺得這樣的解決方案不是很好,我的專案不需要web.xml為了這一個配置去加一個檔案是不合適的。

方案2:
在啟動類你裡面這麼寫:

  @Bean
    public Log4jConfigListener log4jConfigListener( WebApplicationContext webApplicationContext){
        ServletContext servletContext = webApplicationContext.getServletContext();
        servletContext.setInitParameter("log4jConfigLocation","classpath:log4j.properties");
        Log4jConfigListener log4jConfigListener = new Log4jConfigListener();
        log4jConfigListener.contextInitialized(new ServletContextEvent(servletContext));
        return log4jConfigListener;
    }
這個就是進去看了下Log4jConfigListener的原始碼知道發現它是從initParameter這個屬性去拿的檔案地址,於是就這麼嘗試了下確實可行。