0

有没有人尝试在 WinRun4j 服务配置中使用 log4j.xml 引用。这是我的 service.ini 文件的副本。我尝试了很多配置组合。这只是我最近的尝试

service.class=org.boris.winrun4j.MainService
service.id=SimpleBacnetIpDataTransfer
service.name=Simple Backnet IP DataTransfer Service
service.description=This is the service for the Simple Backnet IP DataTransfer.
service.startup=auto

classpath.1=C:\Inbox\DataTransferClient-1.0-SNAPSHOT-jar-with-dependencies.jar
classpath.2=WinRun4J.jar
classpath.3=C:\Inbox\log4j-1.2.16.jar

arg.1=C:\Inbox\DataTransferClient.xml

log=C:\WinRun4J-Service\SimpleBacnetIpDataTransfer\NBP-DT-service.log
log.overwrite=true
log.roll.size=10MB

[MainService]
class=com.shiftenergy.ws.App

vmarg.1=-Xdebug
vmarg.2=-Xnoagent
vmarg.3=-Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n
vmarg.4=-Dlog4j.configuration=file:C:\Inbox\log4j.xml

在 log4j.xml 文件中,引用了应用程序运行时的日志文件。如果我运行 java -jar -Dlog4j.configuration=file:C:\Inbox\log4j.xml ....,则会相应地创建日志文件。如果我注册我的服务并启动服务,则不会创建日志文件。

有没有人成功使用 -D log4j 配置,使用 winrun4j?

谢谢

4

3 回答 3

1

我认为您错误地提供了 vmarg.4 参数。在您的情况下,它必须像:

vmarg.4=-Dlog4j.configurationFile=[log4j.xml 的路径]

我也使用相同的,就我而言,它工作得很好。请看下面的例子:

vmarg.1=-Dlog4j.configurationFile=.\log4j2.xml

于 2018-01-17T12:18:56.110 回答
0

您是否尝试过在代码中设置路径:

System.setProperty("log4j.configurationFile", "config/log4j.xml");

我正在使用包含 log4j.xml 的名为 config 的文件夹的相对路径。不建议使用绝对路径,但也可以使用。

只需确保在调用 log4j 之前进行设置,包括任何 log4j 配置设置或静态方法调用!

    System.setProperty("log4j.configurationFile", "config/log4j.xml");
    final Logger log = Logger.getLogger(Main.class);
    log.info("Starting up");
于 2013-11-18T20:18:46.440 回答
0

我没有在ini文件中指定log4j路径,只是将log4j.xml文件放在jar所在的位置。

也没有指定

System.setProperty("log4j.configurationFile", "config/log4j.xml");

在 Java 项目中,它存储在 (src/main/resources) 中,并将包含在 jar 中,但如果放在 jar 之外,则不会使用它。

于 2017-04-20T06:23:00.370 回答