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

Като инструмент за регистриране използвам Log4j2 и това се извиква чрез използване на системно свойство (/VM аргумент), като се използва:

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

За компилиране на моите проекти използвам Maven и за създаване на exe-файлове Launch4j (Plugin: 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