我目前正在使用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.