2015-08-03 16 views
5

Se le proprietà di log4j hanno più appendici di file, in Java come posso verificare che i registri siano scritti in un file specifico.In java, come scrivere i registri su un appender di file specifico di log4j?

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 

In classe Java, cosa posso fare per scrivere alcuni messaggi a, consente di dire, SUCCESS_FILE e alcuni messaggi di TEMP_FILE

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

È necessario filtrare i dati. Controlla http://stackoverflow.com/a/13408057/4807777 –

+0

E nota che alcune versioni precedenti potrebbero non supportare i filtri nella configurazione dei file di proprietà (ma quelli xml). –

risposta

3

Questo potrebbe aiutare: -

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 

Accesso come: -

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

Grazie per la risposta :) Ho appena scoperto che invece di 'log4j.category.xx' e 'log4j.additivity.xx', possiamo semplicemente usare 'log4j.logger.xx = INFO, fileAppenderName' e accedere al registratore usando il lo stesso modo in cui hai menzionato. –

0

Utilizzando la configurazione XML come risposta @Nio è:

<?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> 
Problemi correlati