作为日志工具我正在使用Log4j2,这是通过使用系统属性(/ VM参数)调用的,使用:
-Dlog4j.configurationFile=./config/log4j2_config.xml
为了编译我的项目,我正在使用Maven并创建exe文件Launch4j(插件:com.akathist.maven.plugins.launch4j)。
我的pom.xml中的插件定义如下:
<plugin>
<groupId>com.akathist.maven.plugins.launch4j</groupId>
<artifactId>launch4j-maven-plugin</artifactId>
<version>1.6</version>
<executions>
<execution>
<id>l4j-clui</id>
<phase>package</phase>
<goals>
<goal>launch4j</goal>
</goals>
<configuration>
<headerType>gui</headerType>
<cmdLine>./config/MyConfig.xml</cmdLine>
<opt>com.akathist.maven.plugins.launch4j.configurationFile=./config/log4j2_config.xml</opt>
<jar>${project.build.directory}/${project.build.finalName}-jar-with-dependencies.jar</jar>
<outfile>${project.build.directory}/MyExe.exe</outfile>
<downloadUrl>http://java.com/download</downloadUrl>
<classPath>
<mainClass>de.my.path.MainClass</mainClass>
<!-- <preCp>anything</preCp> -->
</classPath>
<!-- <icon>${project.basedir}/src/main/assembly/application.ico</icon> -->
<jre>
<minVersion>1.7.0_00</minVersion>
<!-- <jdkPreference>preferJre</jdkPreference> -->
</jre>
</configuration>
</execution>
</executions>
</plugin>
我现在的问题是:
如何设置log4j2集成的系统属性?!
如果试图将其放在方括号中,请选择&#34;选择&#34; (http://launch4j.sourceforge.net/docs.html)
或类似的东西:
<vars>
<var>-Dlog4j.configurationFile=./config/log4j2_config.xml</var>
</vars>
但两个都没有用,我的记录器没有记录..
也许你有同样的问题,可以帮助我。
感谢您的帮助!
答案 0 :(得分:2)
我不熟悉launch4j或maven插件,但是according to the Ant docs,您使用<opt>
标记指定系统属性。并且maven插件文档说pom结构是相似的,那么您是否尝试在<opt>
标记内使用<jre>
标记?
像
<jre>
<opt>-Dlog4j.configurationFile=./config/log4j2_config.xml</opt>
</jre>
尝试一下,让我知道它是否有效。
现在提问:
您是否有理由为配置使用其他名称?通常文件名为log4j2.xml
。如果您使用该名称,则应自动加载配置,并且您不需要系统属性。
答案 1 :(得分:-1)
<opts>
<opt>-Dlog4j.configuration=file:log4j.xml</opt>
</opts>