Search code examples
javaelasticsearchspring-data-elasticsearch

How to enable query logging in Spring-data-elasticsearch


I use spring-data-elasticsearch framework to get query result from elasticsearch server, the java code like this:

SearchQuery searchQuery = new NativeSearchQueryBuilder()
.withQuery(matchAllQuery()).withSearchType(SearchType.COUNT)
.addAggregation(new MinBuilder("min_createDate").field("createDate"))
.build();

List<Entity> list = template.queryForList(searchQuery, Entity.class);

While how can I know the raw http query sent to elasticssearch server? How can I enable the logging, I tried add log4j, but it seems the spring-data-elasticsearch doesn't log the query.


Solution

  • After digging through the spring data code i found this helpful little logger called "tracer" (name not very unique)

    By setting the following in application.properties

    logging.level.tracer=TRACE

    It will print out a full curl statement for the request along with full JSON the response from Elasticsearch.