在 launch4j 中丢失了 Logback 配置

lost Logback configuration in launch4j

我运行遇到了一个st运行ge问题给我,请大家帮忙。从我的搜索没有给出确切结果来看,我只是忘记了一些明显的东西,但我无法理解它是什么。

所以,Java 上有一个程序。 Logback 配置("resources" 路径中的logback.xml):

<configuration>    
    <property resource=".\app\LOG.properties" /> 
    <appender name="STDOUT-BLACK"  
       ...
    </appender>
    <appender name="STDOUT-RED" class="ch.qos.logback.core.ConsoleAppender">
       ...      
    </appender>

    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">   
        <file>${destination}</file>
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>INFO</level>
        </filter>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${destination}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">                
            <maxFileSize>2MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
            <maxHistory>7</maxHistory>
            <totalSizeCap>10MB</totalSizeCap>           
            <cleanHistoryOnStart>true</cleanHistoryOnStart>
        </rollingPolicy>        
        <encoder>
            <Pattern>%d{HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</Pattern>
        </encoder>
  </appender>

  <logger name="org.hibernate.type" level="TRACE" />
  <logger name="org.hibernate.SQL" level="DEBUG" />

  <root level="DEBUG">
    <appender-ref ref="STDOUT-BLACK" />
    <appender-ref ref="STDOUT-RED" />
    <appender-ref ref="FILE" />
  </root>
</configuration>

额外的配置文件是(resources\app\LOG.properties):

fileName=LOGFile.log
#destination=${DEV_HOME:-.\logs}\${fileName}
destination=C:\Temp\${fileName}

它在 NetBeans 中运行良好。

但是当我从这个(使用 Gradle shadow 和 launch4j 插件)为 Windows 制作一个 Exe 时,属性文件似乎被忽略了。每次我启动我的 exe 时,我都有一个文件(与 exe 文件在同一个文件夹中)"destination_IS_UNDEFINED",我所有的日志都正确存储在该文件中。如果我"hardcode" "logback.xml" 中的文件名都正常,但为什么他不能读取"properties"?它们在 Jar 中,Launch4j 从中创建一个 exe,我还得到了一些其他属性文件,程序读取正确。

<property resource=".\app\LOG.properties" /> 

错误出在某处...我尝试使用不同的“/”作为分隔符,但无论如何都无济于事。我到底哪里错了?

实际上我还有一个问题:在 Jar 文件外存储属性的正确方法是什么?我的意思是最好有一个文件夹,我的所有属性都在其中(就像在 IDE 中一样),用户可以更改它们而无需重新编译项目(因此“*.exe”程序必须 "read" 它来自这个文件夹而不是 Jar)。我敢肯定它被 everione 制作了 1000 次。有没有关于它的任何示例或解释(也许我只是在寻找错误,因为我知道英语不够,所以我找不到我需要的东西)。

非常感谢!

已编辑: 所以,第一个 "Problem" 解决了,这真的很傻——只是多了一个点。有人对第二个问题有什么建议吗?

我想检查 XML

中的以下行
<property resource=".\app\LOG.properties" />

您确定 app 文件夹的位置吗?