以Curl格式在Elasticsearch中启用Java REST客户端日志记录
我正在使用org.elasticsearch.client.RestHighLevelClient运行查询 根据官方文档,可以用curl格式记录请求: 我在log4j.properties中添加了以下行:以Curl格式在Elasticsearch中启用Java REST客户端日志记录,java,
elasticsearch,curl,log4j,Java,
elasticsearch,Curl,Log4j,我正在使用org.elasticsearch.client.RestHighLevelClient运行查询 根据官方文档,可以用curl格式记录请求: 我在log4j.properties中添加了以下行: log4j.logger.org.elasticsearch.client = debug 现在我看到http请求,但是,如何设置curl格式?根据他们的文档,您需要启用特定的跟踪记录器,该记录器专门负责curl格式响应 您可以在log4j1.x中通过以下几行实现这一点: log4j.app
log4j.logger.org.elasticsearch.client = debug
现在我看到http请求,但是,如何设置curl格式?根据他们的文档,您需要启用特定的跟踪记录器,该记录器专门负责curl格式响应 您可以在log4j1.x中通过以下几行实现这一点:
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss}] [%-5p] %c{1}:%L - %m%n
log4j.logger.tracer=TRACE, stdout
为RestHighLevelClient 7启用跟踪。版本+显示弹性客户端进行的rest调用的url。执行以下步骤 如果基于maven,则在pom中添加依赖项 slf4j api、slf4j-log4j12、jcl-over-slf4j:slf4j使log4j与弹性体使用的公共日志一起工作 logback经典:elastic使用的commons日志记录 log4j核心,log4japi:log4j2依赖关系 在log4j属性中启用跟踪程序 log4j.logger.tracer=跟踪,标准输出 文件级更改 在pom.xml中添加这些依赖项
<!-- log4j2 -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.11.2</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.11.2</version>
</dependency>
<!-- slf4j to make log4j work with commons logging used by elastic -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.12</version>
</dependency>
<!-- To bind log4j2 to sl4j -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.12</version>
<scope>test</scope>
</dependency>
<!-- To bind commons logging used by elastic to sl4j -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>1.7.12</version>
</dependency>
<!-- commons logging used by elastic -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
<exclusions>
<exclusion>
<!-- Defined below -->
<artifactId>slf4j-api</artifactId>
<groupId>org.slf4j</groupId>
</exclusion>
</exclusions>
</dependency>
为了防止有人不想为日志记录者操心,可以在QueryBuilder上调用toString并查看请求 对于log4j版本2.x,在log4j2.properties文件中添加以下配置
status = error
name = PropertiesConfig
filters = threshold
filter.threshold.type = ThresholdFilter
filter.threshold.level = debug
appenders = console
appender.console.type = Console
appender.console.name = STDOUT
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = %d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
rootLogger.level = debug
rootLogger.appenderRefs = stdout
rootLogger.appenderRef.stdout.ref = STDOUT
log4j.logger.tracer=TRACE, stdout
# Debugging elasticsearch client
loggers=esclient, esclientsniffer, tracer
logger.esclient.name = org.elasticsearch.client
logger.esclient.level = trace
logger.esclient.appenderRefs = stdout
logger.esclient.appenderRef.stdout.ref = STDOUT
logger.esclientsniffer.name = org.elasticsearch.client.sniffer
logger.esclientsniffer.level = trace
logger.esclientsniffer.appenderRefs = stdout
logger.esclientsniffer.appenderRef.stdout.ref = STDOUT
logger.tracer.name=tracer
logger.tracer.level=trace
logger.tracer.appenderRefs = stdout
logger.tracer.appenderRef.stdout.ref = STDOUT