Java Service Wrapper и log4j - PullRequest
       19

Java Service Wrapper и log4j

1 голос
/ 13 мая 2011

Я использую Java Service Wrapper для создания службы Windows из Java-программы.

Все работает нормально, кроме оболочки не входит в файл (я использую log4j). Ведение журнала работает правильно, когда проект не запускается как служба.

Это не проблема Log4J, потому что я могу успешно войти в консоль (это перенаправляется в файл журнала оболочки), но это не то, чего я пытаюсь достичь.

Вот файл конфигурации моей оболочки:

    encoding=UTF-8
    #include ../conf/wrapper-license.conf 
    wrapper.lang.folder=../lang 
    # Java Configuration.
    wrapper.java.command=java
    wrapper.java.command.loglevel=INFO
    wrapper.logfile.rollmode=NONE 
    wrapper.java.mainclass=servicewrapper.MainServiceWrapper 
    wrapper.java.classpath.1=../lib/*.jar
    wrapper.java.classpath.2=../lib/classes/*.jar
    wrapper.java.library.path.1=../lib
    wrapper.java.additional.auto_bits=TRUE 
    wrapper.app.parameter.1=servicewrapper.MainServiceWrapper 
    # Logging Configuration 
    wrapper.console.format=PM 
    wrapper.logfile=../logs/wrapper.log 
    # Service Configuration 
    wrapper.name=myproject
    wrapper.check.deadlock=TRUE 
    wrapper.check.deadlock.interval=10 
    wrapper.check.deadlock.action=RESTART 
    wrapper.check.deadlock.output=FULL 
    wrapper.console.title=myproject
    wrapper.ntservice.dependency.1= 
    wrapper.ntservice.starttype=AUTO_START 
    wrapper.ntservice.interactive=false 

Также вот мой конфигурационный файл Log4J:

log4j.rootCategory=INFO, R

log4j.logger.com.dappit.Dapper.parser=ERROR
log4j.logger.org.w3c.tidy=FATAL
log4j.logger.org.hibernate=ERROR
log4j.logger.org.hibernate.type=ERROR
log4j.logger.com.mchange.v2.c3p0=ERROR
log4j.logger.myproject=DEBUG

#------------------------------------------------------------------------------
#
#  The following properties configure the console (stdout) appender.
#  See http://logging.apache.org/log4j/docs/api/index.html for details.
#
#------------------------------------------------------------------------------
log4j.appender.S = org.apache.log4j.ConsoleAppender
log4j.appender.S.layout = org.apache.log4j.PatternLayout
log4j.appender.S.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} [%t] %p %c{1} %m%n

#------------------------------------------------------------------------------
#
#  The following properties configure the Daily Rolling File appender.
#  See http://logging.apache.org/log4j/docs/api/index.html for details.
#
#------------------------------------------------------------------------------
log4j.appender.R = org.apache.log4j.RollingFileAppender
log4j.appender.R.MaxFileSize=10MB
log4j.appender.R.MaxBackupIndex=10
log4j.appender.R.File = myproject.log.txt
log4j.appender.R.Append = true
log4j.appender.R.layout = org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} [%t] %p %c{1} %m%n

Ответы [ 2 ]

1 голос
/ 19 декабря 2013

Возможная причина - вы забыли установить -Dlog4j.configuration={path to file} в вашей конфигурации оболочки.Например:

wrapper.java.additional.1=-Dlog4j.configuration=/home/logs.log
0 голосов
/ 14 мая 2011

Мне было непонятно, в чем проблема.Подтвердить.Когда вы запускаете как службу, вывод log4j, который направлен на консоль, корректно записывается в файл журнала Wrapper?../logs/wrapper.log Правильно?

Итак, проблема в том, что ваш вывод log4j, который должен идти в myproject.log.txt, не отображается.Это проблема, с которой вы столкнулись?

Если это так, то на самом деле это проблема стороны log4j, поскольку это будет полностью в JVM.

Из вашей конфигурации вы пытаетесь писать. ¥myproject.log.txt, который будет находиться в том же каталоге, что и бинарный файл Wrapper.Если бы это была проблема с доступом к файлу, я бы ожидал какую-то ошибку log4j в консоли, которая затем была бы видна в файле wrapper.log.

Чтобы поместить файл log4j в журнал Wrapperфайл, который вы хотите сделать: log4j.appender.R.File = ../logs/myproject.log.txt

Пожалуйста, подтвердите, в какой файл вы не можете записать.Кроме того, какую версию Wrapper и Windows вы используете?

Cheers, Leif

...