es logging doc似乎太模棱两可,但它提到tracer
:
为跟踪程序包启用跟踪日志记录以打印出此类日志行。
如果您深入研究 es 客户端代码,则有一个名为 的类org.apache.http.util.EntityUtils.RequestLogger
,它将所有请求和响应详细信息记录到名为 的记录器中tracer
:
private static final Log tracer = LogFactory.getLog("tracer");
在 methodlogResponse
中,您可以看到它将调试信息记录到普通包记录器中,将跟踪信息记录到tracer
记录器中。
因此,显示请求和响应跟踪信息的正确方法是配置一个名为 的记录器tracer
,并为其启用TRACE
级别。
使用logback.xml
例如:
<appender name="ES_REQ_RES_TRACER" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>logs/es-trace</file>
<append>true</append>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>logs/es-trace.%d{yyyy-MM-dd}.%i</fileNamePattern>
<maxHistory>3</maxHistory>
<maxFileSize>500MB</maxFileSize>
</rollingPolicy>
<encoder>
<pattern>%date %level [%thread] %logger{10} [%file:%line] %msg%n</pattern>
</encoder>
</appender>
<logger name="tracer" additivity="false" level="trace">
<appender-ref ref="ES_REQ_RES_TRACER" />
</logger>
logs/es-trace
现在您可以在文件中找到跟踪详细信息。它将包含一个 curl 请求和一个 json 响应。
TRACE
如果您使用 Spring Boot tracer
,也可以配置记录器的级别:application.properties
logging.level.tracer=TRACE