我有一个嵌入式的tomcat应用程序,每当启动它时,我都会两次看到此错误输出到控制台:

Unable to configure the logging system.  No log.properties was found.


看起来很愚蠢,但我已经进行了一些谷歌搜索,并搜索了stackoverflow,似乎找不到遇到此问题的人。

我的主课看起来像这样:

public class AuthServerEntryPoint {
  static {
    org.apache.log4j.PropertyConfigurator.configure("conf/log4j.properties");
  }
public static void main(String[] args) {
  // ...
}


“ conf / log4j.properties”包含一个看似有效的配置:

log4j.appender.mainAppend=org.apache.log4j.ConsoleAppender
log4j.appender.mainAppend.layout=org.apache.log4j.PatternLayout
log4j.appender.mainAppend.layout.ConversionPattern=%d %p [%t] %c -- %m%n

log4j.appender.fileAppend=org.apache.log4j.FileAppender
log4j.appender.fileAppend.layout=org.apache.log4j.PatternLayout
log4j.appender.fileAppend.layout.ConversionPattern=%d %p [%t] %c - %m%n
log4j.appender.fileAppend.file=logs/myservice.log

log4j.rootLogger = info, fileAppend
log4j.logger.com.mycompany.myservice = debug, fileAppend


并且日志记录确实有效-即,日志已正确写入myservice.log。那有什么呢?

谢谢!
-卡尔

最佳答案

通过嵌入式Tomcat应用程序,您是说要从Java代码启动Tomcat并使用类org.apache.catalina.startup.Embedded吗?

如果是,我的猜测是使用脚本时,Tomcat可能无法找到在catalina.sh(或等效文件)中设置的日志记录配置文件:

LOGGING_CONFIG="-Djava.util.logging.config.file=$CATALINA_BASE/conf/logging.properties"


奇怪的是,该文件名为logging.properties,而不是log.properties,因此我不确定。我没有检查Tomcat的源代码,也许他们在那里做着某种黑魔法。

您能否尝试将$CATALINA_BASE/conf/logging.properties重命名为log.properties(或不重命名)并将其放在应用的类路径中(或设置-Djava.util.logging.config.file)?

08-06 00:16