【发布时间】:2010-12-10 08:06:41
【问题描述】:
我有一个嵌入式 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。那么是什么给出的呢?
谢谢! -卡尔
【问题讨论】:
-
另外,顺便说一句,我在 log4j 源中搜索了这条消息但找不到它,这让我觉得 tomcat 正在做一些奇怪的事情。
-
您的日志记录有效,但 Tomcat 的日志无效。
-
我想通了 - 我很尴尬地说,我实际上并没有使用 TomcatServletContainer,而是一个内部开发的扩展它的类。我几乎不知道,它正在做一些疯狂的 foo 来尝试设置日志记录 - 这就是要求 log.properties 文件的原因。由于我公司以外的任何人都没有希望弄清楚这一点,因此我将正确答案授予最有帮助且几乎正确的回答。谢谢大家!