2015-10-14 56 views
0

我想第一次使用log4j 2,但無法讓我的代碼登錄到文件。Log4j 2不記錄到文件

<dependency> 
    <groupId>org.apache.logging.log4j</groupId> 
    <artifactId>log4j-api</artifactId> 
    <version>2.3</version> 
</dependency> 
<dependency> 
    <groupId>org.apache.logging.log4j</groupId> 
    <artifactId>log4j-core</artifactId> 
    <version>2.3</version> 
</dependency> 

我的代碼沒有記錄到我的文件追加程序或控制檯的Appender:

<?xml version="1.0" encoding="UTF-8"?> 
<Configuration> 
    <Appenders> 
    <Console name="Console" target="SYSTEM_OUT"> 
     <PatternLayout> 
      <Pattern pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/> 
     </PatternLayout>   
    </Console> 
    <File name="File" fileName="resources/app-log.log"> 
     <PatternLayout> 
      <Pattern pattern="%d{MM.dd.yyyy HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/> 
     </PatternLayout> 
    </File> 
    </Appenders> 
    <Loggers> 
    <Logger name="x.y" level="ALL" additivity="true"> 
     <AppenderRef ref="File"/> 
     <AppenderRef ref="Console"/> 
    </Logger> 
    </Loggers> 
</Configuration> 

這裏是我的Java代碼興奮劑記錄:

package x.y;  

import org.apache.logging.log4j.LogManager; 
import org.apache.logging.log4j.Logger;  

    public class Foo { 
      private static Logger logger = LogManager.getLogger(Foo.class.getName()); 

      public static void main(String[] args) { 
       Foo foo = new Foo; 
       logger.info("Application starting"); 

      } 

     } 

編輯:我的應用程序被記錄到控制檯但不使用我指定的模式佈局。我的應用程序是Maven應用程序,我已將log4j2.xml放在src/main/resources中。我知道我的配置xml正在被讀取,因爲當我把無效的東西,我得到一個異常。

回答

0

想通了。變更爲:

<PatternLayout pattern="%d{MM.dd.yyyy HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/> 

現在登錄到我的文件。