如何使用log4j输出solr核心名称

时间:2013-09-26 11:08:41

标签: logging solr log4

Solr4输出如下条目:

10:56:55.689 [searcherExecutor-5-thread-1] INFO  org.apache.solr.core.SolrCore - [core0] Registered new searcher Searcher@7a85b031 main{StandardDirectoryReader(segments_14:228601 _27j5(4.3.1):C18335161/2313734 _257a(4.3.1):C24349255/2326527 _210g(4.3.1):C18306979 _287n(4.3.1):C1927648 _28af(4.3.1):C249307 _28re(4.3.1):C1161428/12826 _28fz(4.3.1):C260567/1021 _28uh(4.3.1):C266582/2057 _2997(4.3.1):C685637/436232 _296j(4.3.1):C493665/2540 _29a8(4.3.1):C37183/15132 _29bb(4.3.1):C66208 _29bl(4.3.1):C66457 _29bv(4.3.1):C66385 _29c5(4.3.1):C67350 _29cf(4.3.1):C68403 _29bs(4.3.1):C6783 _29d0(4.3.1):C66027 _29cq(4.3.1):C66629 _29cz(4.3.1):C6405 _29d1(4.3.1):C6421 _29d2(4.3.1):C5058)}

在log4j.properties中使用以下行:

log4j.appender.stdout.layout.ConversionPattern=%d{HH:mm:ss.SSS} [%t] %-5p %c - %m%n

注意方括号中的核心名称core0。

是否有可能要求Solr始终输出核心名称以帮助提高可读性?例如,以下条目没有标记核心名称,这使得几乎不可能遵循哪个核心正在这样做:

11:24:25.134 [commitScheduler-6-thread-1] INFO  org.apache.solr.update.UpdateHandler  - end_commit_flush

您是否可以推荐其他任何Solr特定的日志记录标志,以提高可读性并帮助调试?

1 个答案:

答案 0 :(得分:1)

这需要在Solr代码中完成,它不能通过配置来完成。许多现有日志确实包含[corename]。其他人则没有,因为核心名称在生成日志的源代码中不是现成的,或者触及源代码的提交者都没有想到它。

请在Apache Jira中提出一个问题,说明您希望在哪个日志(Java类)上查看核心名称,和/或在美国工作时间回到#solr进行进一步讨论。

这是我最近一直在思考的一个问题,我希望将[corename]范例扩展到代码库中的更多日志中。