попытка использовать файл log4j.xml в WinRun4j

кто-нибудь пытался использовать ссылку log4j.xml в конфигурации службы WinRun4j. вот копия моего файла 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?

спасибо


person user2482282    schedule 13.06.2013    source источник


Ответы (3)


Я думаю, что вы неправильно указали параметр vmarg.4. В вашем случае это должно быть так:

vmarg.4=-Dlog4j.configurationFile=[Путь для log4j.xml]

Я также использую то же самое, и в моем случае это работает отлично. См. пример ниже:

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

person Jay    schedule 17.01.2018

Вы пытались вместо этого установить путь в своем коде:

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

Я использую относительный путь к папке с именем config, которая содержит log4j.xml. Абсолютный путь не рекомендуется, но может работать.

Просто не забудьте установить это перед любыми вызовами log4j, включая любые настройки конфигурации log4j или вызовы статических методов!

    System.setProperty("log4j.configurationFile", "config/log4j.xml");
    final Logger log = Logger.getLogger(Main.class);
    log.info("Starting up");
person Scott Wardlaw    schedule 18.11.2013

Я не указал путь log4j в файле ini, а только поместил файл log4j.xml в то же место, где была размещена банка.

Также без указания

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

В проекте Java он был сохранен в (src/main/resources) и будет включен в банку, но не будет использоваться, если будет помещен вне банки.

person Andreas Mattisson    schedule 20.04.2017