问题描述
es集群之前是 7.3.1,java客户端没有任何问题。
es集群升级到了7.5.1,同样的java客户端,就一直打印es抛出啊来的警告日志。这个在网上查了,说是es的bug。真的解决很麻烦。所以找了一个其他的方案,通过修改控制打印的日志,来解决一直打印es日志的问题。
解决方案
在resource配置文件目录下添加一个日志的配置文件。该文件和applation.yml同级。
logback的配置文件内容,如下
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
<!-- <property name="LOG_HOME" value="E://TaskExplore_logs"/><!– windows –>-->
<!-- 日志文件目录,改成你自己即可,这里我用的自己的项目名 -->
<property name="LOG_HOME" value="task-logs"/><!-- linux -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!-- 格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
<pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%thread] %-5level %logger{40} - %msg%n</pattern>
</encoder>
</appender>
<!-- 按照每天生成日志文件 -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_HOME}/task.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!--日志文件输出的文件名-->
<fileNamePattern>${LOG_HOME}/%d{yyyyMM,aux}/108-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<maxFileSize>10MB</maxFileSize>
</rollingPolicy>
<encoder>
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
<pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%thread] %-5level %logger{40} - %msg%n</pattern>
</encoder>
</appender>
<!-- 解决问题的核心在这里,控制不再打印警告日志 -->
<logger name="org.elasticsearch.client.sniff.ElasticsearchNodesSniffer" level="ERROR">
<appender-ref ref="STDOUT"/>
</logger>
<root level="info">
<appender-ref ref="STDOUT"/>
<appender-ref ref="FILE"/>
</root>
</configuration>
就是通过这个解决问题的:
<logger name="org.elasticsearch.client.sniff.ElasticsearchNodesSniffer" level="ERROR">
<appender-ref ref="STDOUT"/>
</logger>