如何查找 install4j windows 服务的日志

How to find logs for install4j windows service

当我尝试启动通过 install4j 创建的 Windows 服务时,如何生成并找到日志文件?我特别想找到 Java 异常堆栈跟踪(如果有的话)。

上下文: 我正在尝试将启动器添加到 install4j 项目。启动器设置为从 jar 创建 Windows 服务。

详细信息:安装时它确实安装了所有必需的文件(jar 包含在安装中并从命令行完美运行),但生成的 Windows 服务和 .exe 失败。 .exe 立即关闭,如果我将 'fail if an exception in main...' 标志设置为 true,服务会抛出 1067 错误。如果我将该标志设置为 false,当我尝试启动服务时,我会收到一条消息说 'service started and then stopped...'。

最有可能的错误来源,也是我能想到的唯一会导致终止的错误来源,是我尝试读取配置文件时产生的 FileNotFoundException。我相信如果我能看到相对路径的结果,我可以更正我对该配置文件的引用,但我无法找到 windows 服务运行时的日志。我发现很多资源似乎都在展示如何获取安装程序日志文件,甚至是来自 exe 的日志文件,但是 none 用于从生成的服务获取日志。

注意: The executable generated by install4j doesnt start 问题类似,但该问题询问的是 exe,而不是 Windows 服务。 (并不是说我没有尝试过,但是 运行 带有该参数的 .exe 没有创建日志文件,甚至是空的。)

关于配置文件的注意事项: 它位于目录 'config' 中,与 jar 和 exe 位于同一目录中。因此,jar 使用的相对路径是 "config/config.txt"

如果异常出现在您的代码中,您可以在启动程序向导的 "Executable info->Redirection" 步骤中设置 stderr 的重定向。

获取服务的原生日志文件,定义环境变量

INSTALL4J_LOG=yes

为所有用户重新启动服务。日志文件名为 i4jlog... 并保存到 %TEMP% 目录。对于 NT AUTHORITY\LOCAL SERVICE 用户帐户,该目录是

C:\Windows\ServiceProfiles\LocalService\AppData\Local\Temp

在 Install4j 中: 转到 "Launchers" 单击 "Redirection" 检查重定向 stderr 和 stdout

在 "Invocation:" 下确保您的主要 class 是正确的。

这适用于所有 install4j 安装程序。检查日志文件的程序 Files/YourApp/。

服务安装程序的常见错误:

忘记安装服务。转到安装程序:屏幕和操作: 在安装程序下,我使用: 停止服务(用于升级) 创建程序组 注册 添加项目 安装服务

在卸载程序下: 卸载:停止服务