【问题标题】:How to get Solr to use a logger other than root with Tomcat?如何让 Solr 在 Tomcat 中使用除 root 以外的记录器?
【发布时间】:2013-02-05 02:59:50
【问题描述】:

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

我已经删除了Handlers 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 之间是否存在一些不兼容?我该如何解决这个问题?

【问题讨论】:

    标签: tomcat logging solr


    【解决方案1】:

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

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

    【讨论】:

    • 这对我来说效果很好...我能够分离出 Solr 日志,这些日志长期以来一直在搞乱我们所有其他的日志记录...谢谢!
    猜你喜欢
    • 2011-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-25
    • 1970-01-01
    • 1970-01-01
    • 2015-03-15
    相关资源
    最近更新 更多