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/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 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")); }