2

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

我们尝试了:

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

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

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

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

4

1 回答 1

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
    
  • 至少我们再次建立战争文件

    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 中的应用程序收到了日志。

于 2013-07-23T07:50:32.293 回答