2015-05-12 45 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模式。谢谢 –

相关问题