在 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 文件夹的位置吗?
我运行遇到了一个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 文件夹的位置吗?