From 0ef9b8cf07b66f2f4609301723a0c52ce5b85d60 Mon Sep 17 00:00:00 2001 From: Fabian Paul Date: Thu, 4 Jul 2019 15:20:13 +0200 Subject: [PATCH 1/2] Change log level on debug also for child app --- .../common_kafka_streams/KafkaStreamsApplication.java | 6 +++++- .../common_kafka_streams/test_applications/WordCount.java | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/bakdata/common_kafka_streams/KafkaStreamsApplication.java b/src/main/java/com/bakdata/common_kafka_streams/KafkaStreamsApplication.java index 907106d09..4af1ec990 100644 --- a/src/main/java/com/bakdata/common_kafka_streams/KafkaStreamsApplication.java +++ b/src/main/java/com/bakdata/common_kafka_streams/KafkaStreamsApplication.java @@ -76,6 +76,8 @@ private static String[] addEnvironmentVariablesArguments(final String[] args) { return allArgs.toArray(String[]::new); } + private static String appPackageName = null; + /** *

This methods needs to be called in the executable custom application class inheriting from * {@link KafkaStreamsApplication}.

@@ -84,14 +86,16 @@ private static String[] addEnvironmentVariablesArguments(final String[] args) { * @param args Arguments passed in by the custom application class. */ protected static void startApplication(final KafkaStreamsApplication app, final String[] args) { + appPackageName = app.getClass().getPackageName(); final String[] populatedArgs = addEnvironmentVariablesArguments(args); CommandLine.run(app, System.out, populatedArgs); } @Override public void run() { - if(this.debug) { + if (this.debug) { org.apache.log4j.Logger.getLogger("com.bakdata").setLevel(Level.DEBUG); + org.apache.log4j.Logger.getLogger(appPackageName).setLevel(Level.DEBUG); } log.debug(this.toString()); final var kafkaProperties = this.getKafkaProperties(); diff --git a/src/test/java/com/bakdata/common_kafka_streams/test_applications/WordCount.java b/src/test/java/com/bakdata/common_kafka_streams/test_applications/WordCount.java index 05e661593..88a111830 100644 --- a/src/test/java/com/bakdata/common_kafka_streams/test_applications/WordCount.java +++ b/src/test/java/com/bakdata/common_kafka_streams/test_applications/WordCount.java @@ -52,7 +52,11 @@ public class WordCount extends KafkaStreamsApplication { @CommandLine.Option(names = "--output-topic", required = true) private String outputTopic = ""; - + + public static void main(final String[] args) { + startApplication(new WordCount(), args); + } + @Override public void buildTopology(final StreamsBuilder builder) { final Serde stringSerde = Serdes.String(); From 09974495b1c4c6f9bc22d8b3fbbb4e37993b016a Mon Sep 17 00:00:00 2001 From: Fabian Paul Date: Thu, 4 Jul 2019 15:26:44 +0200 Subject: [PATCH 2/2] Describe static appPackageName field --- .../common_kafka_streams/KafkaStreamsApplication.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/bakdata/common_kafka_streams/KafkaStreamsApplication.java b/src/main/java/com/bakdata/common_kafka_streams/KafkaStreamsApplication.java index 4af1ec990..6d63216c3 100644 --- a/src/main/java/com/bakdata/common_kafka_streams/KafkaStreamsApplication.java +++ b/src/main/java/com/bakdata/common_kafka_streams/KafkaStreamsApplication.java @@ -76,7 +76,12 @@ private static String[] addEnvironmentVariablesArguments(final String[] args) { return allArgs.toArray(String[]::new); } - private static String appPackageName = null; + /** + * This variable is usually set on application start. When the application is running in debug mode it is used to + * reconfigure the child app package logger. On default it points to the package of this class allowing to execute + * the run method independently. + */ + private static String appPackageName = KafkaStreamsApplication.class.getPackageName(); /** *

This methods needs to be called in the executable custom application class inheriting from