From e685ff4460672fc6f18cbe0e64d366a4a253781e Mon Sep 17 00:00:00 2001 From: Jeroen Koek Date: Mon, 16 Dec 2019 20:52:51 +0100 Subject: [PATCH 1/2] Adjust the KafkaAppender The appender is not starting when the org.kafka is set to DEBUG. It results that the solutions can't start kafka. By checking if the procedure is activated the message can be appended. In other cases the messages are dropped. --- .gitignore | 8 +++++++- .../github/danielwegener/logback/kafka/KafkaAppender.java | 7 +++++-- .../danielwegener/logback/kafka/KafkaAppenderTest.java | 3 +-- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index 34e1547..d5abf07 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,9 @@ target .idea -*.iml \ No newline at end of file +*.iml +.settings/org.eclipse.m2e.core.prefs +.settings/org.eclipse.jdt.apt.core.prefs +.classpath +.project +.settings/org.eclipse.core.resources.prefs +.settings/org.eclipse.jdt.core.prefs diff --git a/src/main/java/com/github/danielwegener/logback/kafka/KafkaAppender.java b/src/main/java/com/github/danielwegener/logback/kafka/KafkaAppender.java index 5529f0e..b3dfbcc 100644 --- a/src/main/java/com/github/danielwegener/logback/kafka/KafkaAppender.java +++ b/src/main/java/com/github/danielwegener/logback/kafka/KafkaAppender.java @@ -24,7 +24,7 @@ public class KafkaAppender extends KafkaAppenderConfig { * Kafka clients uses this prefix for its slf4j logging. * This appender defers appends of any Kafka logs since it could cause harmful infinite recursion/self feeding effects. */ - private static final String KAFKA_LOGGER_PREFIX = KafkaProducer.class.getPackage().getName().replaceFirst("\\.producer$", ""); + private static final String KAFKA_LOGGER_PREFIX = KafkaProducer.class.getPackage().getName().replaceFirst("\\.clients\\.producer$", ""); private LazyProducer lazyProducer = null; private final AppenderAttachableImpl aai = new AppenderAttachableImpl(); @@ -46,7 +46,10 @@ public KafkaAppender() { public void doAppend(E e) { ensureDeferredAppends(); if (e instanceof ILoggingEvent && ((ILoggingEvent)e).getLoggerName().startsWith(KAFKA_LOGGER_PREFIX)) { - deferAppend(e); + //only in case the producer is initialized we are able to send messages. + if ( (lazyProducer != null ) && lazyProducer.isInitialized() ) { + deferAppend(e); + } } else { super.doAppend(e); } diff --git a/src/test/java/com/github/danielwegener/logback/kafka/KafkaAppenderTest.java b/src/test/java/com/github/danielwegener/logback/kafka/KafkaAppenderTest.java index b87af21..ea50d0a 100644 --- a/src/test/java/com/github/danielwegener/logback/kafka/KafkaAppenderTest.java +++ b/src/test/java/com/github/danielwegener/logback/kafka/KafkaAppenderTest.java @@ -136,7 +136,6 @@ public void testDeferredAppend() { final LoggingEvent evt = new LoggingEvent("fqcn",ctx.getLogger("logger"), Level.ALL, "message", null, new Object[0]); unit.doAppend(evt); - verify(deliveryStrategy).send(any(KafkaProducer.class), any(ProducerRecord.class), eq(deferredEvent), any(FailedDeliveryCallback.class)); verify(deliveryStrategy).send(any(KafkaProducer.class), any(ProducerRecord.class), eq(evt), any(FailedDeliveryCallback.class)); } @@ -147,7 +146,7 @@ public void testKafkaLoggerPrefix() throws ReflectiveOperationException { constField.setAccessible(true); } String constValue = (String) constField.get(null); - assertThat(constValue, equalTo("org.apache.kafka.clients")); + assertThat(constValue, equalTo("org.apache.kafka")); } From f6e849469f8c49e33fa2cd35f61d5ae19b2f9024 Mon Sep 17 00:00:00 2001 From: Jeroen Koek Date: Tue, 17 Dec 2019 08:34:58 +0100 Subject: [PATCH 2/2] [maven-release-plugin] rollback the release of logback-kafka-appender-0.2.0 --- pom.xml | 6 +++--- release.properties | 12 ++++++++++++ 2 files changed, 15 insertions(+), 3 deletions(-) create mode 100644 release.properties diff --git a/pom.xml b/pom.xml index 78ce21f..1447979 100644 --- a/pom.xml +++ b/pom.xml @@ -37,9 +37,9 @@ - scm:git:git@github.com:danielwegener/logback-kafka-appender.git - scm:git:git@github.com:danielwegener/logback-kafka-appender.git - git@github.com:danielwegener/logback-kafka-appender.git + scm:git:git@github.com:koekj/logback-kafka-appender.git + scm:git:git@github.com:koekj/logback-kafka-appender.git + git@github.com:koekj/logback-kafka-appender.git HEAD diff --git a/release.properties b/release.properties new file mode 100644 index 0000000..3a3cd9e --- /dev/null +++ b/release.properties @@ -0,0 +1,12 @@ +#release configuration +#Tue Dec 17 08:33:05 CET 2019 +projectVersionPolicyId=default +scm.tagNameFormat=@{project.artifactId}-@{project.version} +exec.additionalArguments=\ -Psonatype-oss-release +remoteTagging=true +scm.commentPrefix=[maven-release-plugin] +pushChanges=true +completedPhase=check-poms +scm.url=scm\:git\:git@github.com\:koekj/logback-kafka-appender.git +exec.snapshotReleasePluginAllowed=false +preparationGoals=clean verify