java - Install4j:带有时间戳的更新程序日志文件名

标签 java install4j

我有一个 SilentUpdater(使用 Install4j 版本 6.1.4 构建),它将日志文件写入我通过 VM 参数配置的某个目录:-Dinstall4j.debug=true -Dinstall4j.keepLo​​g=true -Dinstall4j.alternativeLogfile=${installer:sys.installationDir}/log/updater.log

但是这个过程总是会覆盖之前的更新日志。所以我正在考虑用执行时间戳写入日志文件。我尝试使用 sys.date 和 sys.time 变量,如下所示: -Dinstall4j.alternativeLogfile= ${installer:sys.installationDir}/log/updater_${compiler:sys.date}_${compiler:sys.time}.log

但即使更新程序是在不同时间执行的,我最终也会得到相同的文件。在阅读有关这两个变量的文档后,我认为它们是在安装程序构建过程中定义的并且始终相同。

那么,是否有其他方法可以通过 VM 参数或在执行更新过程期间获得具有当前时间戳的日志文件?

最佳答案

从 install4j 6.1.4 开始,此问题没有解决方案。我已将其添加到问题跟踪器中。

<小时/>

更新2019-02-05

在 install4j 8 中,您将能够在 -Dinstall4j.alternativeLogfile 或其新别名 -Dinstall4j.log 中使用安装程序变量。不再需要传递 -Dinstall4j.keepLo​​g=true

对于时间戳,install4j 8 有安装程序变量 ${installer:sys.date}${installer:sys.time}${installer:sys.timestamp},其中包含安装程序启动的时间。

关于java - Install4j:带有时间戳的更新程序日志文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42069801/

相关文章:

java - 使用模式和匹配器检索一些文本

java - 出现错误 : > Process 'command '/Library/Java/JavaVirtualMachines/jdk1. 8.0_77.jdk/Contents/Home/bin/java'' 以非零退出值 1 完成

java - Context.getCompilerVariable() 为合并项目中定义的编译器变量返回 null

java - 在 install4j : addInstallerEventListener throws NotSupportedInElevationException

java - 设置日历实例的时间

java - 页面在浏览器而不是 Webview 上打开

java - 如何更新我的 firebase 数据库字段?

linux - 在 Linux 上使用 install4j 创建的安装程序无法在 Windows 中启动应用程序

loops - Install4j 的默认后退按钮行为与循环不兼容。解决方法是什么?

java - Install4J:成功检查 JDBC 连接后向用户提供反馈