有人试图在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?
感谢
答案 0 :(得分:1)
我认为您错误地提供了vmarg.4参数。在你的情况下,它必须像:
vmarg.4 = -Dlog4j.configurationFile = [log4j.xml的路径]
我也使用相同的,在我的情况下,它工作得非常好。请看下面的例子:
vmarg.1 = -Dlog4j.configurationFile = \ log4j2.xml
答案 1 :(得分: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");
答案 2 :(得分:0)
我没有在ini文件中指定log4j路径,只将log4j.xml文件放在jar放置的同一位置。
也没有指定
System.setProperty("log4j.configurationFile", "config/log4j.xml");
在Java项目中,它存储在(src / main / resources)中并将包含在jar中,但如果放在jar之外,它将不会被使用。