我有一个嵌入式的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
)?