2015-08-03 16 views
5

Bir log4j özelliklerinin birden fazla dosya ekleyicisi varsa, Java'da günlüklerin belirli bir dosyada yazıldığından nasıl emin olabilirim. Ben bazı iletileri yazmak için neler yapabileceğiniJava'da, log4j'nin belirli bir dosya ekleyicisine günlükler nasıl yazılır?

Java sınıfında
log4j.rootLogger=INFO,out 

log4j.appender.SUCCESS_FILE=org.apache.log4j.FileAppender 
log4j.appender.SUCCESS_FILE.File=${dd.log.dir}/success.log 

log4j.appender.VALID_FILE=org.apache.log4j.FileAppender 
log4j.appender.VALID_FILE.File=${dd.log.dir}/valid_error.log 

log4j.appender.TEMP_FILE=org.apache.log4j.FileAppender 
log4j.appender.TEMP_FILE.File=${dd.log.dir}/Temp_error.tmp_log 

, bu yardımcı olabilir

Logger log = Logger.getLogger(Test.class); 
log.debug("This message should go to SUCCESS_FILE"); 
log.debug("This message should go to TEMP_FILE"); 
+0

Verileri filtrelemeniz gerekir. Http://stackoverflow.com/a/13408057/4807777 –

+0

adresini kontrol edin ve bazı eski sürümlerin özellik dosyaları yapılandırmasında (ancak xml olanlarda) filtreleri desteklemeyebileceğini unutmayın. –

cevap

3

temp_file için, demek SUCCESS_FILE ve bazı mesajlar sağlar: -

log4j.appender.successLog=org.apache.log4j.FileAppender 
log4j.appender.successLog.File=${dd.log.dir}/success.log 

log4j.appender.tempLog=org.apache.log4j.FileAppender 
log4j.appender.tempLog.File=${dd.log.dir}/Temp_error.tmp_log 

log4j.category.successLogger=INFO, successLog 
log4j.additivity.successLogger=false 

log4j.category.tempLogger=INFO, tempLog 
log4j.additivity.tempLogger=false 

Erişim onlar gibi: -

static final Logger successLog = Logger.getLogger("successLogger"); 
static final Logger tempLog = Logger.getLogger("tempLogger"); 
+0

Cevabınız için teşekkürler :) 'log4j.category.xx' ve 'log4j.additivity.xx' yerine sadece 'log4j.logger.xx = INFO, fileAppenderName' komutunu kullanabiliriz ve logger’a Bahsettiğin gibi. –

0

@Nio adlı XML yapılandırması şu şekilde kullanılır:

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> 

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> 

    <appender name="successLog" class="org.apache.log4j.FileAppender"> 
     <param name="file" value="${dd.log.dir}/success.log" /> 
     <param name="append" value="false" /> 
     <param name="Threshold" value="INFO" /> 
     <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="[%p] %d %c %M - %m%n" /> 
     </layout> 
    </appender> 

    <appender name="tempLog" class="org.apache.log4j.FileAppender"> 
     <param name="file" value="${dd.log.dir}/Temp_error.tmp_log" /> 
     <param name="append" value="false" /> 
     <param name="append" value="false" /> 
     <param name="Threshold" value="INFO" /> 
     <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="[%p] %d %c %M - %m%n" /> 
     </layout> 
    </appender> 

    <logger name="successLogger" additivity="false"> 
     <level value="INFO"/> 
     <appender-ref ref="successLog"/> 
    </logger> 

    <logger name="tempLogger" additivity="false"> 
     <level value="INFO"/> 
     <appender-ref ref="tempLog"/> 
    </logger> 

</log4j:configuration> 
İlgili konular