2016-09-24 122 views
0

我目前正在使用sl4fj和log4j2在Netbeans中編寫一個小型Maven Java應用程序。在生產環境中部署時,我無法使用java屬性log4j.configurationFile。因此,我想log4j2搜索並找到我的項目中的屬性文件。我搜索了一下,並沒有運氣嘗試以下選項;如何在Netbeans maven項目中將log4j2.xml添加到類路徑中

將log4j2.xml添加到src/main/resources文件夾,並使用maven配置(pom.xml)將其包含在jar中。這實際上並不包含在類路徑中,而是將xml添加到類路徑中的某個位置。

<build> 
     <resources> 
      <resource> 
       <directory>src/main/resources</directory> 
       <targetPath>com/reddipped/jsonlogger_2</targetPath> 
       <includes> 
        <include>log4j2.xml</include> 
       </includes> 
      </resource> 
     </resources> 
</build> 

改變了項目類路徑屬性 - >操作 - >運行項目包括xml文件

exec.args=-classpath %classpath:/Users/petervannes/NetBeansProjects/JSONLogger_2/log4j2.xml ${packageClassName} 

任何其他的選擇,我可以試試嗎?這是一個maven項目,所以我無法在項目屬性中添加jar。

- 更新1 -

我在pom.xml包括log4j2.xml添加的屬性maven.test.additionalClasspath。並添加了一個簡單的JUnit測試。

<properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <maven.compiler.source>1.6</maven.compiler.source> 
     <maven.compiler.target>1.6</maven.compiler.target>   
<maven.test.additionalClasspath>${project.basedir}/src/test/java/log4j2.xml</maven.test.additionalClasspath> 
</properties> 

當執行一個Maven乾淨,並建立與-X參數的日誌報告

properties used {java.vendor=Oracle Corporation, sun.java.launcher=SUN_STANDARD ....., maven.test.additionalClasspath=/Users/petervannes/NetBeansProjects/JSONLogger_2/src/test/java/log4j2.xml, maven.compiler.target=1.6 

仍然獲得了log4j的配置文件沒有發現錯誤。

Running com.reddipped.test.JSONLoggerTest 
ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console. 

回答

0

This page描述了log4j用於查找配置的方法。

據此,您應該將log4j2.xml文件放入項目的默認包中。

相關問題