LOG4J2-2644 - Cache requiresLocation boolean
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/Logger.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/Logger.java
index f7c675f..39c9b3c 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/Logger.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/Logger.java
@@ -142,7 +142,8 @@
 
     @Override
     protected boolean requiresLocation() {
-        return privateConfig.loggerConfig.requiresLocation();
+
+        return privateConfig.requiresLocation;
     }
 
     @Override
@@ -396,6 +397,7 @@
         private final Level loggerConfigLevel;
         private final int intLevel;
         private final Logger logger;
+        private final boolean requiresLocation;
 
         public PrivateConfig(final Configuration config, final Logger logger) {
             this.config = config;
@@ -403,6 +405,7 @@
             this.loggerConfigLevel = this.loggerConfig.getLevel();
             this.intLevel = this.loggerConfigLevel.intLevel();
             this.logger = logger;
+            this.requiresLocation = this.loggerConfig.requiresLocation();
         }
 
         public PrivateConfig(final PrivateConfig pc, final Level level) {
@@ -411,6 +414,7 @@
             this.loggerConfigLevel = level;
             this.intLevel = this.loggerConfigLevel.intLevel();
             this.logger = pc.logger;
+            this.requiresLocation = this.loggerConfig.requiresLocation();
         }
 
         public PrivateConfig(final PrivateConfig pc, final LoggerConfig lc) {
@@ -419,6 +423,7 @@
             this.loggerConfigLevel = lc.getLevel();
             this.intLevel = this.loggerConfigLevel.intLevel();
             this.logger = pc.logger;
+            this.requiresLocation = this.loggerConfig.requiresLocation();
         }
 
         // LOG4J2-151: changed visibility to public