diff --git a/Changelog.md b/Changelog.md index 6809f2c..e03061c 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,3 +1,6 @@ +v.3.0.9 + * fix bug of dead loop when get http 4xx error from Elasticsearch + v.3.0.8 * added enum values for update & delete diff --git a/pom.xml b/pom.xml index 10e2666..41fbec6 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.agido logback-elasticsearch-appender - 3.0.8 + 3.0.9 jar Logback Elasticsearch Appender diff --git a/src/main/java/com/agido/logback/elasticsearch/writer/ElasticsearchWriter.java b/src/main/java/com/agido/logback/elasticsearch/writer/ElasticsearchWriter.java index 6914aac..6bcc661 100644 --- a/src/main/java/com/agido/logback/elasticsearch/writer/ElasticsearchWriter.java +++ b/src/main/java/com/agido/logback/elasticsearch/writer/ElasticsearchWriter.java @@ -83,6 +83,12 @@ public void sendData() throws IOException { int rc = urlConnection.getResponseCode(); if (rc != 200) { String data = slurpErrors(urlConnection); + if(rc >= 400 && rc < 500){ + // no chance to recover form these errors and has to drop the log messages in order to avoid dead loop. + errorReporter.logInfo("Send queue cleared - drop log messages due to http 4xx error."); + sendBuffer.setLength(0); + bufferExceeded = false; + } throw new IOException("Got response code [" + rc + "] from server with data " + data); } } finally {