1

我正在尝试使用 Apache Commons Daemon(procrun) 将 jar 作为 Windows 服务运行。这些服务不会产生日志,也不会读取配置文件。

jar 已成功启动。我在我的 jar 中使用 log4j 来记录日志,并将 log4j.properties 包含在 MyJar.jar 中。然而,该服务并未创建任何日志。而且我发现程序没有读取配置文件 - myConfig.config

我使用以下命令安装了服务:

%INSTALL_SERVICE_CMD%  //IS//SERVICEAGENT --DisplayName="DispName" --Install=%SERVICE_EXE_HOME%\prunsrv.exe --LogPath=%INSTALLER_HOME% --LogLevel=Info --StdOutput=stdout.log --StdError=stderr.log  --StartMode=Java --StopMode=Java --Jvm=auto --Startup=auto --JvmMx=512 ++JvmOptions=-XX:MaxPermSize=128m --StartPath=%START_CLASS_PATH%\ --Classpath=absolutePath\MyJar.jar --StartClass=com.jar.aa.MainEntry --StopClass=com.jar.aa.ExitEntry ++StopParams=--stop ++JvmOptions=-Dfile.encoding=UTF8 ++JvmOptions=-Dlog4j.configuration=log4j.properties ++JvmOptions=-Dorg.apache.commons.logging.LogFactory=org.apache.commons.logging.impl.LogFactoryImpl
After running the service it produced the following:
stderr.log

2019-06-26 13:31:06 Commons Daemon procrun stderr initialized
log4j:WARN No appenders could be found for logger (com.facilio.bacnet.DiscoverDevices).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

我希望我的代码能够读取配置文件并适当地创建日志。如果我直接运行 jar,一切正常。仅当我使用 Apache Commons Daemon Procrun 将 jar 作为服务运行时才会出现此问题。

4

0 回答 0