2015-05-12 43 views
0

我正在使用Log4j,我想從類Main寫入日誌文件, 問題在於日誌獲取其他類的所有INFO日誌 以及類我想寫入文件。 例如:篩選信息日誌到Appender文件,除了特定的類

log4j.xml  
<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> 
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> 

    <appender name="fileAppenderMain1" class="org.apache.log4j.RollingFileAppender"> 
     <param name="append" value="false" /> 
     <param name="file" value="logs/main1/main1.log" /> 
     <param name="MaxFileSize" value="10240KB" /> 
     <layout class="org.apache.log4j.PatternLayout">  
      <param name="ConversionPattern" value="%d{dd MMM yyyy HH:mm:ss} %5p %c{1} - %m%n" /> 
     </layout> 
    </appender> 


    <logger name="Main1.class" additivity="false"> 
     <level value="INFO" /> 
     <appender-ref ref="fileAppenderMain1" /> 
    </logger> 


    <root> 
     <priority value="INFO"></priority> 
     <appender-ref ref="fileAppenderMain1"></appender-ref> 
    </root> 
</log4j:configuration> 


    public class Main1 { 

    private static Logger log = Logger.getLogger(Main1.class); 

    public void log() { 

     log.info("Hello world"); 

    } 
    } 

    public class Main2 {  

    private static Logger log = Logger.getLogger(Main2.class); 

    public void log() { 

     log.info("Hello world"); 

    } 
    } 

    public class Main { 

    public static void main(String [] args) { 

     Main1 main1=new Main1(); 
     Main2 main2=new Main2(); 
     main1.log(); 
     main2.log(); 


    } 
    } 

輸出到文件:

12 May 2015 12:59:09 INFO Main1 - Hello world  
12 May 2015 12:59:09 INFO Main2 - Hello world 

我想記錄只有 「MAIN1」 日誌

感謝

回答

0

你的根記錄器的設置信息好。

如果你想單獨看到你的Main1的信息記錄,其餘的來自警告和以上,你可以將其更改爲WARN,ERROR,FATAL。

這樣:

<root> 
     <priority value="WARN"></priority> 
     <appender-ref ref="fileAppenderMain1"></appender-ref> 
</root> 

更新時間:

如果你想Main1.class的日誌,並沒有其他的日誌,你可以使用

<root> 
     <priority value="OFF"></priority> 
     <appender-ref ref="fileAppenderMain1"></appender-ref> 
</root> 
+0

我有錯誤,警告和信息記錄在我的應用程序中,它不會幫助我。 –

+0

你說過「我只想記錄」Main1「日誌」。保留Main1信息日誌,併爲應用程序的其餘部分(root logger)保留所需的默認級別。我假設你想要main1和其他的更高級別的信息。你可以用最高的,像致命的過濾掉消息。但這隻對開發模式有意義。如果這對你沒有幫助,你的問題不夠具體。 –

+0

嗨,對錯誤的問題抱歉。我需要它prod模式。謝謝 –

相關問題