2012-04-11 10 views
5

Sto cercando di creare appenders 'diverso' in base a diversi livelli, ma finora non sono riuscito a trovare un modo per isolare i livelli di registrazione ....Creazione di diversi registri di base a livello di registrazione in log4j

<category name="com.sample" additivity="false"> 
    <priority value="INFO" /> 
    <appender-ref ref="AllAsync"/> 
    <appender-ref ref="ConsoleAppender"/> 
    </category> 

Ho bisogno di un modo per essere in grado di accodare solo i registri INFO con priorità. Dato che la registrazione del livello INFO mette anche i logger contrassegnati DEBUG ... questo non mi sta aiutando.

Un'altra cosa è 'stesso' pacchetto non riuscivo a definire diversi appenders di registrazione:

 <category name="com.sample" additivity="false"> 
      <priority value="INFO" /> 
      <appender-ref ref="AllAsync"/> 
      <appender-ref ref="ConsoleAppender"/> 
      </category> 

    <category name="com.sample" additivity="false"> 
     <priority value="DEBUG" /> 
     <appender-ref ref="AllAsync"/> 
     <appender-ref ref="ConsoleAppender"/> 
     </category> 

Qui sto ottenendo l'errore qualcosa come:

log4j:ERROR Attempted to append to closed appender named [AllAsync]. 
log4j:ERROR Attempted to append to closed appender named [ConsoleAppender]. 
log4j:ERROR Attempted to append to closed appender named [ConsoleAppender]. 
log4j:ERROR Attempted to append to closed appender named [ConsoleAppender]. 
+1

È possibile utilizzare la soglia per impedire che qualsiasi livello inferiore al livello X si trovi in ​​un file di registro, ma non credo che ci sia un modo per impedire che la registrazione superi il livello X dal file di registro. –

risposta

2

È possibile filtrare in base al livello di log esatto utilizzando un LevelMatchFilter in base al log4j Faq e wiki.

<filter class="org.apache.log4j.varia.LevelMatchFilter"> 
     <param name="LevelToMatch" value="info"/> 
     <param name="AcceptOnMatch" value="true"/> 
</filter> 

Esempio here.

Problemi correlati