diff --git a/test/metabase/logger_test.clj b/test/metabase/logger_test.clj
index 6f9d1d594b8e51d016341d5e3ad3b44e0371d651..055e3f9f63b651d356659dec55bd321aff2c45e6 100644
--- a/test/metabase/logger_test.clj
+++ b/test/metabase/logger_test.clj
@@ -18,7 +18,19 @@
           ;; it either increases (could have many logs from other tests) or it is the max capacity of the ring buffer
           (is (or (> after before)
                   (= before (var-get #'mb.logger/max-log-entries)))
-              "In memory ring buffer did not receive log message"))))))
+              "In memory ring buffer did not receive log message")))))
+
+  (testing "set isAdditive = false if parent logger is root to prevent logging to console (#26468)"
+    (testing "make sure it's true to starts with"
+      (is (true? (.isAdditive (log.impl/get-logger log/*logger-factory* 'metabase)))))
+
+    (testing "set to false if parent logger is root"
+      (mt/with-log-level :warn
+        (is (false? (.isAdditive (log.impl/get-logger log/*logger-factory* 'metabase))))))
+
+    (testing "still true if the parent logger is not root"
+      (mt/with-log-level [metabase.logger :warn]
+        (is (true? (.isAdditive (log.impl/get-logger log/*logger-factory* 'metabase.logger))))))))
 
 (deftest logger-test
   (testing "Using log4j2 logger"
diff --git a/test/metabase/test/util/log.clj b/test/metabase/test/util/log.clj
index 78db3931c5f01423b14d4a5e04336da04ad2ddd1..d6959f5d6e2ab5dbc5400aaa9a2680364746e2cf 100644
--- a/test/metabase/test/util/log.clj
+++ b/test/metabase/test/util/log.clj
@@ -112,11 +112,21 @@
 
 (defn do-with-log-level [a-namespace level thunk]
   (test-runner.parallel/assert-test-is-not-parallel "with-log-level")
-  (let [original-log-level (ns-log-level a-namespace)]
+  (ensure-unique-logger! a-namespace)
+  (let [original-log-level (ns-log-level a-namespace)
+        logger             (exact-ns-logger a-namespace)
+        is-additive        (.isAdditive logger)
+        parent-is-root?    (= "" (-> logger .getParent .getName))]
     (try
+      ;; prevent events to be passed to the root logger's appenders which will log to the Console
+      ;; https://logging.apache.org/log4j/2.x/manual/configuration.html#Additivity
+      (when parent-is-root?
+        (.setAdditive logger false))
       (set-ns-log-level! a-namespace level)
       (thunk)
       (finally
+        (when parent-is-root?
+          (.setAdditive logger is-additive))
         (set-ns-log-level! a-namespace original-log-level)))))
 
 (defmacro with-log-level