2014-02-14 31 views
0

我想知道是否有方法來檢查正在運行的Java進程的log4j屬性。我面臨着一個關於這個問題。我將配置設置爲INFO級別,並使用滾動文件appender。系統啓動並正常工作一分鐘,然後記錄相應的文件。但突然它在DEBUG級別開始記錄到控制檯,並且不再進入文件。很可能有些模塊將Log4j屬性重置爲其他值。我嘗試在Log4j屬性配置器上的幾個方法上放置休息。但是這並沒有太大的幫助,因爲我沒有采取適當的方法。 任何線索,不勝感激。檢查正在運行的Java進程的log4j屬性

我log4j的配置下面的配置,但配置似乎不再在幾秒鐘後

log4j.rootLogger=INFO, A1,A2 

log4j.appender.A1 = org.apache.log4j.RollingFileAppender 
log4j.appender.A1.File = ${storm.home}/logs/${logfile.name} 
log4j.appender.A1.Append = true 
log4j.appender.A1.DatePattern = '.'yyy-MM-dd 
log4j.appender.A1.layout = org.apache.log4j.PatternLayout 
log4j.appender.A1.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss:SSS} %c{1} [%p] %m%n 

log4j.appender.A2=com.proptotype.poc.CustomAppender 
log4j.appender.A2.layout=org.apache.log4j.PatternLayout 
log4j.appender.A2.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss:SSS} %c{1} [%p] %m%n 
log4j.appender.A2.myName=scribe 
log4j.appender.A2.scribeHost=127.0.0.1 
log4j.appender.A2.scribePort=1464 
+0

請出示您的log4j.properties – Sanjeev

回答

1

如果您想找出什麼是你可以如下做到這一點當前的日誌級別。

System.out.println(Logger.getRootLogger().getLevel()); 

同樣你可以找到其他屬性也從記錄器類如:

Enumeration enums = Logger.getRootLogger().getAllAppenders(); 
     while (enums.hasMoreElements()) { 
      System.out.println(enums.nextElement().toString()); 
     } 
相關問題