如何从在tomcat中运行的Solr中包含的应用程序进行日志记录

时间:2013-07-19 13:33:59

标签: tomcat logging solr logback

我们正在使用带有Solr 4.0.0的Tomcat 6.0.35。我们在SolrCore的instanceDir中的lib目录中放置了一些jar文件。 在我们的jar中有一些类正在使用一些实习生的logback配置/类。(一个用于日志框架的外观(目前是Logback / SLF4J)。支持其他功能,) 我们无法使它工作,我们的jar的记录工作正在发挥作用。

我们尝试过:

  1. 编辑默认的logging.properties。在这种情况下,所有日志都属于我们的记录器,但包含我们应用程序的日志语句。

  2. 为Solr提供一个logback.xml文件,其中包含lib文件夹中的logback jar。在这种情况下,我们的日志文件中没有任何日志。

  3. 使用logback进行日志记录。在这种情况下,我们收到了来自tomcat和org.apache.catalina中其他类的不同日志。 Solr中没有日志,日志文件中没有我们的应用程序

  4. 我们可以做些什么来定制我们的日志记录? 如果可能的话,我们想使用logback。

1 个答案:

答案 0 :(得分:0)

至少足以让Solr使用logback。因此,我们将logback-core和loback-classic jar文件放在Solr的war文件中,并提供了一个logback配置文件作为程序参数,并禁用了Solr的标准日志记录。我们认为这不是最好的解决方案,但它有效。

  • 我们解压缩了solr.war文件:

    jar  xfv solr.war
    
    rm solr.war
    
  • 然后将logback-core-.jar和logback-classic-.jar复制到WEB-INF / lib文件夹

    cp /SOMEPATH/logback-core-<version>.jar /SOMEPATH/logback-classic-<version>.jar WEB-INF/lib
    
  • 至少我们再次构建war文件

    jar cfv solr.war *
    

现在我们调整了程序参数: 我们在instance.env文件中设置了以下选项

export LOGGING_CONFIG="-Dnop"

export JAVA_OPTS="$JAVA_OPTS
-Dlogback.configurationFile=/SOMEPATH/logback.xml"

然后Solr通过logback记录,因为它是在logback.xml文件中指定的。我们也从Solr的应用程序中收到了日志。