2016-08-02 14 views
8

Ich verwende log4j2. Aber das Problem, mit dem ich konfrontiert bin, ist, dass es alle Protokolle protokolliert. Ich möchte ... von einem bestimmten Paket zu einer bestimmten Datei & anderes Paket in eine andere Datei protokollieren. Ich verwende log4j2.xml für die Konfiguration. Bitte kann jemand helfen?Apache Log4j2 paketspezifische Protokollierung mit log4j2.xml

log4j2.xml

<?xml version="1.0" encoding="UTF-8"?> 

<Loggers> 
    <Root level="DEBUG" additivity="false"> 
     <AppenderRef level="DEBUG" ref="CONSOLE" /> 
     <AppenderRef level="DEBUG" ref="fileAppender" /> 
    </Root> 
    <Logger name="com.pkg.test.logging.method" level="DEBUG" 
     additivity="false"> 
     <Appender-ref ref="fileAppender" level="DEBUG" /> 
    </Logger> 

</Loggers> 

<Appenders> 

    <Console name="CONSOLE" target="SYSTEM_OUT"> 
     <PatternLayout 
      pattern="%highlight{[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} %c{1}: %L - %msg%n%throwable}" /> 
    </Console> 

    <RollingFile name="fileAppender" fileName="./log.log" 
     filePattern="./log-%d{yyyy-MM-dd}.log"> 
     <PatternLayout 
      pattern="%highlight{[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} %c{1}: %L - %msg%n}" /> 
     <Policies> 
      <TimeBasedTriggeringPolicy interval="1" 
       modulate="true" /> 
     </Policies> 
    </RollingFile> 
</Appenders> 

+1

Bitte posten Sie Ihre bestehende log4j2.xml Sie müssen Logger entsprechend konfigurieren und Appender an sie anhängen. Siehe auch log4j2 [Konfigurationsdokumentation] (http://logging.apache.org/log4j/2.x/manual/configuration.html#Loggers). – Fildor

+0

Hat die log4j2.xml veröffentlicht – Rajas

Antwort

6

beantwortet einfach die Frage.

log4j2.xml

<?xml version="1.0" encoding="UTF-8"?> 
<Loggers> 
    <Root level="DEBUG" additivity="false"> 
     <AppenderRef level="DEBUG" ref="CONSOLE" /> 
    </Root> 
    <Logger name="com.pkg.test.logging.method" level="DEBUG" 
     additivity="false"> 
     <Appender-ref ref="fileAppender" level="DEBUG" /> 
    </Logger> 

</Loggers> 

<Appenders> 

    <Console name="CONSOLE" target="SYSTEM_OUT"> 
     <PatternLayout 
      pattern="%highlight{[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} %c{1}: %L - %msg%n%throwable}" /> 
    </Console> 

    <RollingFile name="fileAppender" fileName="./log.log" 
     filePattern="./log-%d{yyyy-MM-dd}.log"> 
     <PatternLayout 
      pattern="%highlight{[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} %c{1}: %L - %msg%n}" /> 
     <Policies> 
      <TimeBasedTriggeringPolicy interval="1" 
       modulate="true" /> 
     </Policies> 
    </RollingFile> 
</Appenders> 

des Loggers <AppenderRef level="DEBUG" ref="fileAppender" /> aus Wurzel entfernt. So begann es Protokolle basierend auf Paketen zu protokollieren.

2

Von Log4J Manual:

einen bestimmten Logger für eine Klasse hinzufügen: (Sie können siehe auch hier Pakete)

<Logger name="org.apache.logging.log4j.test2" level="debug" additivity="false"> 
    <AppenderRef ref="File"/> 
</Logger> 

eine spezifische appender Hinzufügen:

<Appender type="File" name="File" fileName="${filename}"> 
    <Layout type="PatternLayout"> 
    <Pattern>%d %p %C{1.} [%t] %m%n</Pattern> 
    </Layout> 
</Appender> 
Verwandte Themen