2012-11-07 1 views
5

ho scritto classe per livello di registrazione personalizzato cioè INITregistrazione Log4j per i livelli di log personalizzate in Java

import org.apache.log4j.Logger; 
import org.apache.log4j.Level; 

public class InitLoggingLevel extends Level { 

    public static final String INITLOGGING_LEVEL = "INITLOGGING"; 
    public static final Level INIT_LOGGING = new InitLoggingLevel(
     DEBUG_INT - 4, INITLOGGING_LEVEL, 7); 

    protected InitLoggingLevel(int level, String levelStr, int syslogEquivalent){ 
     super(level, levelStr, syslogEquivalent); 
    } 
} 

Ora quali sono i cambiamenti che ho bisogno di fare in log4j.properties e come ho intenzione di utilizzare questo livello INIT registrazione in La mia lezione di Java?

risposta

1

Si può provare questo

log4j.rootLogger=DEBUG, stdout 
log4j.appender.stdout=org.apache.log4j.ConsoleAppender 
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 
log4j.appender.stdout.layout.ConversionPattern=%d %c:%L - %m%n 
log4j.category.YOUR_PACKAGE=INFO,YOUR_PACKAGE.InitLoggingLevel 

o possibile visualizzare log4j category o http://veerasundar.com/blog/2009/08/log4j-tutorial-how-to-send-log-messages-to-different-log-files/

+1

stavo chiedendo modifiche in log4j.properties per avere il livello di registrazione come INIT nel logger. –

+1

log4j.category.com.impact.qtl12.commons = INIT, com.impact.qtl12.commons.InitLoggingLivello come questo, e come ho intenzione di eseguirlo nella classe java come per il normale logger che facciamo: logger.WARN così come posso avere il livello INIT solo facendo logger.INIT o qualcos'altro –

0

Può essere simile a questo:

<category name="xxx" additivity="false"> 
      <priority class="your class" value="info"/> 
      <appender-ref ref="xxxlog"/> 
     </category> 
+0

stavo chiedendo per log4j.properties –

2

Dovete:

  1. l'override del metodo toLevel(String logArgument) in questo modo:

    public static Level toLevel(String logArgument) { 
        if (logArgument != null && logArgument.toUpperCase().equals("INITLOGGING")) { 
         return INIT_LOGGING; 
        } 
        return (Level) toLevel(logArgument); 
    } 
    
  2. scrivere una riga di configurazione nelle log4j.properties come questo:

    log4j.logger.[MY_CATEGORY]=INITLOGGING#your-package.InitLoggingLevel

Questo è tutto!

P.S .: La sintassi '#' è descritta nella classe di origine org.apache.log4j.helpers.OptionConverter.