2016-08-02 153 views
8

我正在使用log4j2。但是我面臨的問題是它會記錄所有日誌。我想......從特定包登錄到特定文件&其他包到另一個文件。我正在使用log4j2.xml進行配置。 請有人可以幫忙嗎?使用log4j2.xml Apache Log4j2軟件包特定日誌記錄

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

請張貼您現有的log4j2.xml您需要相應地配置記錄器並將appender附加到它們。另請參閱log4j2 [配置文檔](http://logging.apache.org/log4j/2.x/manual/configuration.html#Loggers)。 – Fildor

+0

發表了log4j2.xml – Rajas

回答

6

就回答了這個問題。

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> 

刪除了<AppenderRef level="DEBUG" ref="fileAppender" />從根記錄。因此它開始基於包來記錄日誌。

2

Log4J Manual

添加一類特定的記錄:(你可以是指包在這裏太)

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

添加特定的appender:

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