繁体   English   中英

JAR 作为应用程序安装时不生成应用程序日志

[英]Application logs not generated when JAR installed as an application

我有一个 java 应用程序,其中 log4j 配置为记录应用程序日志。 当我以 java -jar 运行它时,会生成应用程序日志。 但是我需要分发与 windows 安装程序相同的应用程序,所以我使用 Launch4j 并将 JAR 转换为 exe 文件。 然后我使用带有 Inno Setup 的 exe 文件创建了一个 windows 安装程序,JDK 打包在安装程序中。 该应用程序可以在 Program Files (x86) 下成功安装并且运行良好。 但不会生成应用程序日志。 当我创建 JAR 时,在打包过程中 log4j.xml 包含在 Z529E363425C8C9BFAAD07 因此,它是由 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 但没有生成日志。

在此先感谢您的任何指点。

由于在程序文件夹下创建文件需要管理员权限,因此相对路径不起作用。 当我以管理员身份启动应用程序时,app 文件夹下生成的日志进一步证明了这一点。 在 log4j 中,我给出了 C:/logs/ 的完整路径,并在 C 驱动器下创建了日志文件夹。 现在应用程序日志文件在正常启动模式下生成。 由于我不能期望应用程序以管理员模式启动,因此我将在 Program Files 文件夹之外配置路径。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM