在Maven中为Launch4j添加系统属性(使用Log4j 2)

时间:2015-02-23 11:59:49

标签: java maven log4j2 launch4j

作为日志工具我正在使用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>

但两个都没有用,我的记录器没有记录..

也许你有同样的问题,可以帮助我。

感谢您的帮助!

2 个答案:

答案 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>