我在 Tomcat 6 中运行了 Solr 4。该应用程序运行得很好,但我无法让 Tomcat 将日志写入我想要的位置。这是我conf/logging.properties
文件的相关部分。
handlers = 1catalina.org.apache.juli.FileHandler, \
2localhost.org.apache.juli.FileHandler, \
3manager.org.apache.juli.FileHandler, \
4host-manager.org.apache.juli.FileHandler, \
5solr.org.apache.juli.FileHandler, \
java.util.logging.ConsoleHandler
.handlers = 1catalina.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
############################################################
# Handler specific properties.
# Describes specific configuration info for Handlers.
############################################################
5solr.org.apache.juli.FileHandler.level = FINE
5solr.org.apache.juli.FileHandler.directory = /var/log/solr
5solr.org.apache.juli.FileHandler.prefix = solr.
# SNIP...
############################################################
# Facility specific properties.
# Provides extra control for each logger.
############################################################
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/solr].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/solr].handlers = 5solr.org.apache.juli.FileHandler
# SNIP...
我已经剪掉了Handler
s 1 - 4 的设置,因为我没有改变它们在我安装 Tomcat 时的设置。
当我启动 Tomcat 时,它会创建以下日志文件。
$ ls -l $CATALINA_HOME/logs
-rw-rw-r-- 1 webapp webapp 11836 Feb 4 18:29 catalina.2013-02-04.log
-rw-rw-r-- 1 webapp webapp 11836 Feb 4 18:29 catalina.out
$ ls /var/log/solr -l
-rw-rw-r-- 1 webapp webapp 0 Feb 4 18:29 solr.2013-02-04.log
这些文件包含 Solrcatalina.out
的catalina.2013-02-04.log
日志输出。我试图做的logging.properties
是把 Solr 登录/var/log/solr
。
我预计发生的事情是 Tomcat 获取了我的更改logging.properties
并在 中创建了日志文件/var/log/solr
,但是 Solr 的日志消息没有到达正确的位置,最终一直到根记录器。
Solr 使用 SLF4J,它应该能够将日志写入java.util.logging
接口,但 Tomcat 重新实现了该接口的一部分 (JULI) 以允许每个上下文有一个单独的记录器。SLF4J 和 JULI 之间是否存在一些不兼容?我怎样才能解决这个问题?