【发布时间】:2016-09-24 10:54:09
【问题描述】:
我目前正在使用 sl4fj 和 log4j2 在 Netbeans 中编写一个小型 Maven Java 应用程序。在生产环境中部署 java 属性 log4j.configurationFile 时,我无法使用它。因此,我希望 log4j2 在我的项目中搜索并找到属性文件。我用谷歌搜索并尝试了以下选项,但没有成功;
将 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 中添加了属性 maven.test.additionalClasspath,包括 log4j2.xml。并添加了一个简单的 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>
使用 -X 参数执行 Maven 清理和构建时,日志会报告
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.
【问题讨论】:
标签: java maven netbeans log4j2