Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java服务包装器和log4j_Java_Service_Wrapper - Fatal编程技术网

Java服务包装器和log4j

Java服务包装器和log4j,java,service,wrapper,Java,Service,Wrapper,我正在使用Java服务包装器从Java程序创建Windows服务 除了包装器没有登录到文件(我使用的是log4j)之外,一切都很正常。当项目不作为服务运行时,日志记录工作正常 这不是Log4J问题,因为我可以成功地登录到控制台(这会被重定向到包装器的日志文件),但这不是我试图实现的目标 这是我的包装器的配置文件: encoding=UTF-8 #include ../conf/wrapper-license.conf wrapper.lang.folder=../lan

我正在使用Java服务包装器从Java程序创建Windows服务

除了包装器没有登录到文件(我使用的是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.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
这里还有我的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.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

我不清楚这个问题。确认。当您作为服务运行时,正确地将定向到控制台的log4j输出写入包装器的日志文件/logs/wrapper.log是否正确

因此,问题在于,应该转到myproject.log.txt的log4j输出没有显示出来。这就是你的问题吗

如果是这样,那么它实际上是一个log4j方面的问题,因为这将完全在JVM中

您正试图从配置中写入¥myproject.log.txt,该文件将与包装器二进制文件位于同一目录中。如果这是对文件的访问问题,那么我希望控制台中会出现某种log4j错误,这将在wrapper.log文件中可见

要将log4j文件与包装器的日志文件放在一起,您需要执行以下操作: log4j.appender.R.File=../logs/myproject.log.txt

请确认您无法写入的文件。另外,您正在运行什么版本的包装器和Windows

干杯,
Leif

一个可能的原因是您忘记在包装器配置中设置
-Dlog4j.configuration={path to file}
。例如:

wrapper.java.additional.1=-Dlog4j.configuration=/home/logs.log