使用elastic4s和logback时启用ElasticSearch RestClient响应日志记录

问题描述 投票:0回答:1

我正在使用elastic4s v6.5.2向ElasticSearch发送非常简单的索引/更新请求。elastic4s使用引擎盖下的elastic4s,即com.elasticsearch.client.RestClient。我的目标是将这些日志合并到我的应用程序中(将它们写入文件/ stdout)。

在我的项目中,据我所知,我使用seems to support response logging作为日志记录框架,而elasticsearch(及其随后的logback)则使用logback

我尝试过:

  • 在我的登录配置中添加新的RestClient(对于程序包commons-logging和特定类commons-logging
  • 使用以下任意一项将<logger>文件添加到我的项目资源中:

    name="org.elasticsearch.clientname="org.elasticsearch.client.RestClient"commons-logging.properties

我也尝试过不同的日志级别-.level=traceorg.elasticsearch.client.level=traceorg.elasticsearch.client.RestClient.level=trace

这些都不起作用-elasticsearch的fine方法始终返回trace。在内部,elasticsearch的all具有logger.isDebugEnabled()(来自false),并调用其RequestLogger方法,该方法又具有Jdk14Logger并调用其commons-logging方法,该方法返回isDebugEnabled(),因为它没有日志记录级别已定义。

elasticsearch logback apache-commons-logging elastic4s
1个回答
0
投票

解决此问题的关键是删除java.util.logging.Logger依赖关系,而是添加对isLoggable(Level.FINE)的依赖关系。在false中,它看起来像这样:

commons-logging

此后,就可以用jcl-over-slf4j简单地配置记录器:

sbt
© www.soinside.com 2019 - 2024. All rights reserved.