@apimastery good catch... See https://github.com/netty/netty/pull/8109
Log4J2 Auto-detection
Not sure if I'm missing something...

[#5047](https://github.com/netty/netty/pull/5047) added Log4J2LoggerFactory and Log4J2Logger. It appears that Log4J2 auto-detection in InternalLoggerFactory wasn't added?
https://github.com/netty/netty/blob/fef462c04333950201ddbfd505c0af730a0c2ffd/common/src/main/java/io/netty/util/internal/logging/InternalLoggerFactory.java#L39

Cheers!

common/src/main/java/io/netty/util/internal/logging/InternalLoggerFactory.java
common/src/main/java/io/netty/util/internal/logging/InternalLoggerFactory.java
diff --git a/common/src/main/java/io/netty/util/internal/logging/InternalLoggerFactory.java b/common/src/main/java/io/netty/util/internal/logging/InternalLoggerFactory.java
index 9f85e3646b4..12c1b5a4477 100644
--- a/common/src/main/java/io/netty/util/internal/logging/InternalLoggerFactory.java
+++ b/common/src/main/java/io/netty/util/internal/logging/InternalLoggerFactory.java
@@ -41,13 +41,18 @@ private static InternalLoggerFactory newDefaultFactory(String name) {
         try {
             f = new Slf4JLoggerFactory(true);
             f.newInstance(name).debug("Using SLF4J as the default logging framework");
-        } catch (Throwable t1) {
+        } catch (Throwable ignore1) {
             try {
                 f = Log4JLoggerFactory.INSTANCE;
                 f.newInstance(name).debug("Using Log4J as the default logging framework");
-            } catch (Throwable t2) {
-                f = JdkLoggerFactory.INSTANCE;
-                f.newInstance(name).debug("Using java.util.logging as the default logging framework");
+            } catch (Throwable ignore2) {
+                try {
+                    f = Log4J2LoggerFactory.INSTANCE;
+                    f.newInstance(name).debug("Using Log4J2 as the default logging framework");
+                } catch (Throwable ignore3) {
+                    f = JdkLoggerFactory.INSTANCE;
+                    f.newInstance(name).debug("Using java.util.logging as the default logging framework");
+                }
             }
         }
         return f;
