当前位置: 首页 > 知识库问答 >
问题:

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

饶承宣
2023-03-14

作为日志记录工具,我使用Log4j2,这是通过使用系统属性(/VM参数)调用的,使用:

-Dlog4j.configurationFile=./config/log4j2_config.xml

为了编译我的项目,我使用Maven并创建exe文件Launch4j(Plugin:com.akatast.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集成的系统属性?!

如果试图用“opt”将其置于括号中(http://launch4j.sourceforge.net/docs.html)

或者类似的:

                        <vars>
                            <var>-Dlog4j.configurationFile=./config/log4j2_config.xml</var>
                        </vars>

但是两者都没有工作,我的记录器也没有记录...

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

谢谢你的帮助!

共有2个答案

谢同化
2023-03-14
<opts>
    <opt>-Dlog4j.configuration=file:log4j.xml</opt>
</opts>
鲁宏爽
2023-03-14

我不熟悉launch4j或maven插件,但根据Ant文档,您可以使用

喜欢

    <jre>
        <opt>-Dlog4j.configurationFile=./config/log4j2_config.xml</opt>
    </jre>

试试看,让我知道它是否有效。

现在有个问题:

您使用不同的配置名称是有原因的吗?通常文件名是log4j2.xml。如果使用该名称,则应自动加载配置,并且不需要系统属性。

 类似资料:
  • 问题内容: 是否可以向Java系统属性添加新值。如果有的话,如何在Java系统属性中引入具有相应值的新键。 问题答案: 无论是或使用国旗当您启动JVM

  • 问题内容: 我想这样做: 注意这一行: 我试图设置这样的值: 但我看不到任何效果。 在调用方法之前是否已配置log4j ? 还有其他方法吗? 问题答案: 看来您做对了所有事情。我认为在主类中设置属性与通过命令行指定属性之间没有任何区别,只要它发生在实际的log4j初始化之前即可。 我认为您的问题是 在 指定属性 之前已 加载日志记录框架。我可以说在调用配置器时将配置日志记录框架(log4j)。这样

  • 使用 我修改了以包含导入语句。因此,maven无法找到我试图使用并将其与项目链接的jar。 我向pom.xml文件添加了一个依赖项,如下所示:

  • 您好,我最近在spring项目中将日志记录从log4j迁移到了log4j2。 一切正常,但我想知道如何设置属性

  • 问题内容: 如何在jQuery中的特定HTML标签中添加属性? 例如,像下面这样的简单HTML: 然后添加一个属性disable =“ true”,如下所示: 问题答案: 您可以像这样添加属性: 但是,对于和这样的DOM属性,正确的方法(从JQuery 1.6开始)是使用。

  • 问题内容: 我读过的几乎每篇文章都告诉我,Java中没有 chdir 。这个问题的公认答案是您不能用Java做到这一点。 但是,这是我尝试过的一些方法: 这是我正在使用的测试课程: 请解释为什么这样做。我可以从现在开始使用它,并期望它在所有平台上都能以相同的方式工作吗? 问题答案: 仅仅因为给出期望的答案并不意味着它正在做您想要的事情。 例如,尝试: 那到底在哪里?在我的Windows机器上,即使