我在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.out
和catalina.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之间是否存在某些不兼容性?我怎么能绕过这个?
答案 0 :(得分:1)
您应该将solr处理程序设置为新添加的处理程序: -
org.apache.solr.level = INFO
org.apache.solr.handlers = 5solr.org.apache.juli.FileHandler