【发布时间】:2021-03-13 08:37:04
【问题描述】:
我有一个配置了 log4j 的 java 应用程序来记录应用程序日志。当我将它作为 java -jar 运行时,会生成应用程序日志。但是我需要分发与 Windows 安装程序相同的应用程序,所以我使用 Launch4j 并将 JAR 转换为 exe 文件。然后我使用带有 Inno Setup 的 exe 文件来创建一个 Windows 安装程序,其中包含安装程序中的 JDK。该应用程序可以在 Program Files (x86) 下成功安装并运行良好。但不会生成应用程序日志。当我创建 JAR 时,在打包过程中 log4j.xml 包含在 JAR 中。因此,它是由 launch4j 创建的 exe 的一部分。 log4j.xml 配置如下:
`<appender name="DD_FILE" class="org.apache.log4j.RollingFileAppender">
<param name="Append" value="true" />
<param name="MaxFileSize" value="10MB" />
<param name="File" value="logs/rolling_app.log" />
<param name="MaxBackupIndex" value="10" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yyyy-MM-dd hh:mm:ss}:%p %c{2} [%L] %x - %m%n" />
</layout>
</appender>`
我尝试在 launch4j 中添加系统变量为 -Dlog4j.configuration=log4j.xml,但没有生成日志。
提前感谢您的任何指点。
【问题讨论】:
-
“./logs”需要存在。
-
退出应用程序并在 Program Files x(86)/myapp 下创建日志文件夹并重新启动应用程序。仍然没有生成日志文件。