Добавление системного свойства для Launch4j в Maven (с использованием Log4j 2)

В качестве инструмента ведения журнала я использую 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?!

Если попытаться поместить его в скобки с помощью «opt» (http://launch4j.sourceforge.net/docs.html )

или что-то типа того:

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

Но оба не работали, и мой регистратор не регистрировался.

Может у вас была такая же проблема и вы можете мне помочь.

Спасибо за помощь!


person mrbela    schedule 23.02.2015    source источник


Ответы (1)


Я не знаком с launch4j или подключаемым модулем maven, но в соответствии с документацией Ant вы указываете Системные свойства с тегами <opt>. И в документах плагина maven говорится, что структура pom похожа, поэтому вы пытались использовать теги <opt> внутри тегов <jre>?

нравится

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

Попробуйте это и дайте мне знать, если это сработает.

Теперь вопрос:

Есть ли причина, по которой вы используете другое имя для своей конфигурации? Обычно имя файла log4j2.xml. Если вы используете это имя, конфигурация должна быть загружена автоматически, и вам не нужно системное свойство.

person rewolf    schedule 23.02.2015
comment
Привет! первая возможность не сработала. Переименуйте файл в ‹code›log4j2.xml‹/code› и поместите его в папку src (stackoverflow.com/questions/25487116/) сработало!! На данный момент я написал автору плагина, потому что возможность добавления системных свойств должна быть возможной и, на мой взгляд, это немного более приятное решение.. ;) - person mrbela; 24.02.2015