1. 程式人生 > >log4j.properties檔案的配置不起作用

log4j.properties檔案的配置不起作用

http://outofmemory.cn/code-snippet/7269/java-log4j.properties-not-working-solution

今天的專案中遇到了log4j.properties日誌配置檔案不起作用的問題,反反覆覆看了log4j.properties檔案是沒有語法問題,但是設定log級別就是不管用。

最後查到是配置檔案,被第三方jar包中的log4j.properties配置檔案覆蓋了。 檢視是否被覆蓋可以通過工具來檢視第三方包中是否包含log4j.properties檔案或者xml配置檔案。

如果存在就很有可能是被覆蓋了,如果是被覆蓋了,可以通過下面的方式在程式啟動時重置logger的配置。

如下程式碼:

      org.apache.log4j.LogManager.resetConfiguration();
      org.apache.log4j.PropertyConfigurator.configure("c:/yourlog4j.properties");

或者重置xml配置:

      org.apache.log4j.xml.DOMConfigurator.configure("c:/yourlog4j.xml");

如果你不確定是否是被第三方包重置了配置,可以通過在java命令中新增-Dlog4j.debug虛擬機器引數來顯示log4j載入配置檔案的位置。

java -cp  /opt/monitor-0.1.jar:/opt/distribute-0.1-jar-with-dependencies.jar com.qctt.main.Main /opt/spark-1.4.1/wangjunbo/monitor/mo.config


這個命令會先載入第一個jar即monitor-0.1.jar中log4j.properties,如果發現存在log4j.properties,就不再查詢其它地方的log4j.properties了