Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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_Log4j_Tomcat7 - Fatal编程技术网

Java log4j未记录到文件

Java log4j未记录到文件,java,log4j,tomcat7,Java,Log4j,Tomcat7,我正在本地机器上开发我的站点,使用测试服务器,并从测试服务器发送到真实服务器 我所有的log4j.properties文件都是相同的 在本地计算机和测试服务器上,它可以正常工作,创建诸如system_logs.log.2013-12-24-AM之类的日志文件 但是,log4j不能以这种方式记录实际服务器 本地计算机路径:D:\jplatform2\tomcat7 测试服务器路径:C:\Program Files\Tomcat7 实际服务器路径:C:\ProgramFiles(x86)\Apac

我正在本地机器上开发我的站点,使用测试服务器,并从测试服务器发送到真实服务器

我所有的log4j.properties文件都是相同的

在本地计算机和测试服务器上,它可以正常工作,创建诸如system_logs.log.2013-12-24-AM之类的日志文件

但是,log4j不能以这种方式记录实际服务器

  • 本地计算机路径:D:\jplatform2\tomcat7
  • 测试服务器路径:C:\Program Files\Tomcat7
  • 实际服务器路径:C:\ProgramFiles(x86)\Apache软件基金会\Tomcat 7.0 (不是我安装了真正的服务器……)
它是否可能是由路径引起的,即由空格引起的

我的开发都是64位的,我使用的是Tomcat7

提前谢谢

log4j.properties文件:

# Direct log messages to a log file
log4j.appender.file                            = org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.DatePattern                = '.'yyyy-MM-dd-a
log4j.appender.file.File                       = ${catalina.base}/logs/system_logs.log
log4j.appender.file.layout                     = org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern   = %d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
# Direct log messages to stdout
log4j.appender.stdout                          = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target                   = System.out
log4j.appender.stdout.layout                   = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
log4j.rootLogger                               = DEBUG, file, stdout
此外,我不知道是否相关,但在我的tomcat错误日志文件(如tomcat7-stderr.2013-12-25.log)中有一个恒定的错误

Handler error
java.lang.IllegalArgumentException: Bad level "DEBUG"
    at java.util.logging.Level.parse(Unknown Source)
    at org.apache.juli.FileHandler.configure(FileHandler.java:314)
    at org.apache.juli.FileHandler.<init>(FileHandler.java:99)
    at org.apache.juli.FileHandler.<init>(FileHandler.java:91)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at java.lang.Class.newInstance(Unknown Source)
    at org.apache.juli.ClassLoaderLogManager.readConfiguration(ClassLoaderLogManager.java:536)
    at org.apache.juli.ClassLoaderLogManager.readConfiguration(ClassLoaderLogManager.java:479)
    at org.apache.juli.ClassLoaderLogManager.readConfiguration(ClassLoaderLogManager.java:303)
    at java.util.logging.LogManager$2.run(Unknown Source)
    at java.util.logging.LogManager$2.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.util.logging.LogManager.readPrimordialConfiguration(Unknown Source)
    at java.util.logging.LogManager.getLogManager(Unknown Source)
    at java.util.logging.Logger.<init>(Unknown Source)
    at java.util.logging.Logger.<init>(Unknown Source)
    at java.util.logging.LogManager$RootLogger.<init>(Unknown Source)
    at java.util.logging.LogManager$RootLogger.<init>(Unknown Source)
    at java.util.logging.LogManager$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.util.logging.LogManager.<clinit>(Unknown Source)
    at java.util.logging.Logger.demandLogger(Unknown Source)
    at java.util.logging.Logger.getLogger(Unknown Source)
    at org.apache.juli.logging.DirectJDKLog.<init>(DirectJDKLog.java:71)
    at org.apache.juli.logging.DirectJDKLog.getInstance(DirectJDKLog.java:196)
    at org.apache.juli.logging.LogFactory.getInstance(LogFactory.java:170)
    at org.apache.juli.logging.LogFactory.getInstance(LogFactory.java:242)
    at org.apache.juli.logging.LogFactory.getLog(LogFactory.java:293)
    at org.apache.catalina.startup.Bootstrap.<clinit>(Bootstrap.java:60)
处理程序错误
java.lang.IllegalArgumentException:错误级别“调试”
位于java.util.logging.Level.parse(未知源)
位于org.apache.juli.FileHandler.configure(FileHandler.java:314)
位于org.apache.juli.FileHandler.(FileHandler.java:99)
位于org.apache.juli.FileHandler.(FileHandler.java:91)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance(未知源)
位于sun.reflect.delegatingConstructor或AccessorImpl.newInstance(未知源)
位于java.lang.reflect.Constructor.newInstance(未知源)
位于java.lang.Class.newInstance(未知源)
位于org.apache.juli.ClassLoaderLogManager.readConfiguration(ClassLoaderLogManager.java:536)
位于org.apache.juli.ClassLoaderLogManager.readConfiguration(ClassLoaderLogManager.java:479)
位于org.apache.juli.ClassLoaderLogManager.readConfiguration(ClassLoaderLogManager.java:303)
位于java.util.logging.LogManager$2.run(未知源)
位于java.util.logging.LogManager$2.run(未知源)
位于java.security.AccessController.doPrivileged(本机方法)
位于java.util.logging.LogManager.readPrimordialConfiguration(未知源)
位于java.util.logging.LogManager.getLogManager(未知源)
位于java.util.logging.Logger。(未知源)
位于java.util.logging.Logger。(未知源)
位于java.util.logging.LogManager$RootLogger。(未知源)
位于java.util.logging.LogManager$RootLogger。(未知源)
位于java.util.logging.LogManager$1.run(未知源)
位于java.security.AccessController.doPrivileged(本机方法)
位于java.util.logging.LogManager。(未知源)
位于java.util.logging.Logger.demandLogger(未知源)
位于java.util.logging.Logger.getLogger(未知源)
位于org.apache.juli.logging.DirectJDKLog.(DirectJDKLog.java:71)
位于org.apache.juli.logging.DirectJDKLog.getInstance(DirectJDKLog.java:196)
位于org.apache.juli.logging.LogFactory.getInstance(LogFactory.java:170)
位于org.apache.juli.logging.LogFactory.getInstance(LogFactory.java:242)
位于org.apache.juli.logging.LogFactory.getLog(LogFactory.java:293)
位于org.apache.catalina.startup.Bootstrap.(Bootstrap.java:60)

检查是否在静态上下文中设置了记录器。我遇到了一个类似的问题,我在类中初始化了一个静态记录器,后来在一个静态方法中使用,我遇到了这个问题。之后,我遵循以下步骤进行修复:

  public static void doStuff(...) {
    Log log = LogFactory.getLog("stuff");
    log.warn(...);
  }

您确定在生产和部署方面都是Tomcat7吗?Tomcat6中也有类似的错误,问题中的堆栈跟踪没有开发人员特定的代码调用。它在启动时由catalina直接调用。