如何让Solr在Tomcat中使用除root之外的记录器?

时间:2013-02-05 02:59:51

标签: tomcat logging solr

我在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

文件catalina.outcatalina.2013-02-04.log包含Solr的日志输出。我试图用logging.properties做的事情是将Solr日志放在/var/log/solr中。

我希望发生的事情是Tomcat将我的更改提取到logging.properties并在/var/log/solr中创建了日志文件,但是Solr的日志消息没有到达正确的位置,并最终完成所有直到根记录器。

Solr使用SLF4J,它应该能够将日志写入java.util.logging接口,但Tomcat重新实现该接口(JULI)的一部分,以允许每个上下文具有单独的记录器。 SLF4J和JULI之间是否存在某些不兼容性?我怎么能绕过这个?

1 个答案:

答案 0 :(得分:1)

您应该将solr处理程序设置为新添加的处理程序: -

org.apache.solr.level = INFO
org.apache.solr.handlers = 5solr.org.apache.juli.FileHandler