This is an automated email from the ASF dual-hosted git repository.

scwhittle pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/beam.git


The following commit(s) were added to refs/heads/master by this push:
     new caba399f96e [Dataflow Java] Fix incorrect warning log when specifying 
logger override. (#39034)
caba399f96e is described below

commit caba399f96e1295460122614092dfe66cf57f2b5
Author: Sam Whittle <[email protected]>
AuthorDate: Fri Jun 19 11:30:18 2026 +0200

    [Dataflow Java] Fix incorrect warning log when specifying logger override. 
(#39034)
---
 .../logging/DataflowWorkerLoggingInitializer.java  | 12 +++---
 .../DataflowWorkerLoggingInitializerTest.java      | 44 +++++++++++++++++++++-
 2 files changed, 47 insertions(+), 9 deletions(-)

diff --git 
a/runners/google-cloud-dataflow-java/worker/src/main/java/org/apache/beam/runners/dataflow/worker/logging/DataflowWorkerLoggingInitializer.java
 
b/runners/google-cloud-dataflow-java/worker/src/main/java/org/apache/beam/runners/dataflow/worker/logging/DataflowWorkerLoggingInitializer.java
index 0f1b5c2750b..d854ae74eba 100644
--- 
a/runners/google-cloud-dataflow-java/worker/src/main/java/org/apache/beam/runners/dataflow/worker/logging/DataflowWorkerLoggingInitializer.java
+++ 
b/runners/google-cloud-dataflow-java/worker/src/main/java/org/apache/beam/runners/dataflow/worker/logging/DataflowWorkerLoggingInitializer.java
@@ -217,17 +217,16 @@ public class DataflowWorkerLoggingInitializer {
       boolean directLoggingEnabled) {
     if (!directLoggingEnabled) {
       logger.setLevel(overrides.disk);
-      if (overrides.disk.intValue() != Level.OFF.intValue()) {
+      if (overrides.direct.intValue() != Level.OFF.intValue()) {
         LOG.warn(
-            "Ignoring the disk logging level override for {} because 
--defaultWorkerDirectLoggerLevel was OFF.",
+            "Ignoring the direct logging level override for {} because 
--defaultWorkerDirectLoggerLevel was OFF.",
             logger.getName());
       }
       return;
     }
 
     // Configure the logger to accept logs of the lower value. The log will be 
sent directly based
-    // upon the default
-    // nonDirectLogLevel or the provided hint.
+    // upon the default nonDirectLogLevel or the provided hint.
     if (overrides.direct.intValue() < overrides.disk.intValue()) {
       logger.setLevel(overrides.direct);
       if (overrides.disk.intValue() != defaultNonDirectLogLevel.intValue()) {
@@ -245,9 +244,8 @@ public class DataflowWorkerLoggingInitializer {
       logger.setLevel(overrides.disk);
       if (overrides.disk.intValue() < defaultNonDirectLogLevel.intValue()) {
         // We need to provide the hint as otherwise the default would be used 
and send the log
-        // directly which is not
-        // desired. We don't bother if the threshold was increased as the 
right decision would still
-        // be made.
+        // directly which is not desired. We don't bother if the threshold was 
increased as the
+        // right decision would still be made.
         logger.setResourceBundle(
             
DataflowWorkerLoggingHandler.resourceBundleForNonDirectLogLevelHint(overrides.disk));
       }
diff --git 
a/runners/google-cloud-dataflow-java/worker/src/test/java/org/apache/beam/runners/dataflow/worker/logging/DataflowWorkerLoggingInitializerTest.java
 
b/runners/google-cloud-dataflow-java/worker/src/test/java/org/apache/beam/runners/dataflow/worker/logging/DataflowWorkerLoggingInitializerTest.java
index 7537c17a17b..7569590b63f 100644
--- 
a/runners/google-cloud-dataflow-java/worker/src/test/java/org/apache/beam/runners/dataflow/worker/logging/DataflowWorkerLoggingInitializerTest.java
+++ 
b/runners/google-cloud-dataflow-java/worker/src/test/java/org/apache/beam/runners/dataflow/worker/logging/DataflowWorkerLoggingInitializerTest.java
@@ -134,7 +134,7 @@ public class DataflowWorkerLoggingInitializerTest {
   }
 
   @Test
-  public void testWithWorkerCustomLogLevels() {
+  public void testWithWorkerCustomLogLevels() throws IOException {
     DataflowWorkerLoggingOptions options =
         PipelineOptionsFactory.as(DataflowWorkerLoggingOptions.class);
     options.setWorkerLogLevelOverrides(
@@ -153,6 +153,9 @@ public class DataflowWorkerLoggingInitializerTest {
     assertEquals(Level.SEVERE, bLogger.getLevel());
     assertEquals(0, bLogger.getHandlers().length);
     assertTrue(aLogger.getUseParentHandlers());
+
+    List<String> logLines = retrieveLogLines();
+    assertThat(logLines, not(hasItem(containsString("Ignoring the direct 
logging level"))));
   }
 
   @Test
@@ -176,7 +179,7 @@ public class DataflowWorkerLoggingInitializerTest {
   }
 
   @Test
-  public void testWithSdkHarnessCustomLogLevels() {
+  public void testWithSdkHarnessCustomLogLevels() throws IOException {
     SdkHarnessOptions options = 
PipelineOptionsFactory.as(SdkHarnessOptions.class);
     options.setSdkHarnessLogLevelOverrides(
         new SdkHarnessLogLevelOverrides()
@@ -194,6 +197,43 @@ public class DataflowWorkerLoggingInitializerTest {
     assertEquals(Level.SEVERE, bLogger.getLevel());
     assertEquals(0, bLogger.getHandlers().length);
     assertTrue(aLogger.getUseParentHandlers());
+
+    List<String> logLines = retrieveLogLines();
+    assertThat(logLines, not(hasItem(containsString("Ignoring the direct 
logging level"))));
+  }
+
+  @Test
+  public void testWithSdkHarnessCustomLogLevels_DirectSpecifiedNotEnabled() 
throws IOException {
+    SdkHarnessOptions options = 
PipelineOptionsFactory.as(SdkHarnessOptions.class);
+    options.setSdkHarnessLogLevelOverrides(
+        new SdkHarnessLogLevelOverrides()
+            .addOverrideForName("B", SdkHarnessOptions.LogLevel.DEBUG)
+            .addOverrideForName("C", SdkHarnessOptions.LogLevel.ERROR));
+    DataflowWorkerLoggingOptions loggingOptions = 
options.as(DataflowWorkerLoggingOptions.class);
+    loggingOptions.setWorkerDirectLogLevelOverrides(
+        new WorkerLogLevelOverrides()
+            .addOverrideForName("A", DataflowWorkerLoggingOptions.Level.TRACE)
+            .addOverrideForName("C", 
DataflowWorkerLoggingOptions.Level.TRACE));
+
+    
DataflowWorkerLoggingInitializer.configure(options.as(DataflowWorkerLoggingOptions.class));
+
+    Logger aLogger = LogManager.getLogManager().getLogger("A");
+    assertEquals(0, aLogger.getHandlers().length);
+    assertEquals(Level.INFO, aLogger.getLevel());
+    assertTrue(aLogger.getUseParentHandlers());
+
+    Logger bLogger = LogManager.getLogManager().getLogger("B");
+    assertEquals(Level.FINE, bLogger.getLevel());
+    assertEquals(0, bLogger.getHandlers().length);
+    assertTrue(aLogger.getUseParentHandlers());
+
+    Logger cLogger = LogManager.getLogManager().getLogger("C");
+    assertEquals(Level.SEVERE, cLogger.getLevel());
+    assertEquals(0, cLogger.getHandlers().length);
+    assertTrue(aLogger.getUseParentHandlers());
+
+    List<String> logLines = retrieveLogLines();
+    assertThat(logLines, hasItem(containsString("Ignoring the direct logging 
level")));
   }
 
   @Test

Reply via email to