2016-09-24 120 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文件放入项目的默认包中。

相关问题