You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by rp...@apache.org on 2015/08/18 18:37:00 UTC

logging-log4j2 git commit: break up method into smaller methods to clarify intention and facilitate JVM inlining

Repository: logging-log4j2
Updated Branches:
  refs/heads/master 36556a0a3 -> 7257b8839


break up method into smaller methods to clarify intention and facilitate
JVM inlining

Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/7257b883
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/7257b883
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/7257b883

Branch: refs/heads/master
Commit: 7257b8839ee5adc9f73aa7cdcd1fa5835cb40670
Parents: 36556a0
Author: rpopma <rp...@apache.org>
Authored: Wed Aug 19 01:37:08 2015 +0900
Committer: rpopma <rp...@apache.org>
Committed: Wed Aug 19 01:37:08 2015 +0900

----------------------------------------------------------------------
 .../logging/log4j/core/config/LoggerConfig.java | 53 +++++++++++++-------
 1 file changed, 34 insertions(+), 19 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/7257b883/log4j-core/src/main/java/org/apache/logging/log4j/core/config/LoggerConfig.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/LoggerConfig.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/LoggerConfig.java
index 01f8f4a..c155be5 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/LoggerConfig.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/LoggerConfig.java
@@ -401,31 +401,47 @@ public class LoggerConfig extends AbstractFilterable {
      * @param event The log event.
      */
     public void log(final LogEvent event) {
-
-        counter.incrementAndGet();
+        beforeLogEvent();
         try {
-            if (isFiltered(event)) {
-                return;
+            if (!isFiltered(event)) {
+                processLogEvent(event);
             }
+        } finally {
+            afterLogEvent();
+        }
+    }
 
-            event.setIncludeLocation(isIncludeLocation());
+    private void beforeLogEvent() {
+        counter.incrementAndGet();
+    }
 
-            callAppenders(event);
+    private void afterLogEvent() {
+        if (counter.decrementAndGet() == 0) {
+            signalCompletionIfShutdown();
+        }
+    }
 
-            if (additive && parent != null) {
-                parent.log(event);
+    private void signalCompletionIfShutdown() {
+        final Lock lock = shutdownLock;
+        lock.lock();
+        try {
+            if (shutdown.get()) {
+                noLogEvents.signalAll();
             }
         } finally {
-            if (counter.decrementAndGet() == 0) {
-                shutdownLock.lock();
-                try {
-                    if (shutdown.get()) {
-                        noLogEvents.signalAll();
-                    }
-                } finally {
-                    shutdownLock.unlock();
-                }
-            }
+            lock.unlock();
+        }
+    }
+
+    private void processLogEvent(final LogEvent event) {
+        event.setIncludeLocation(isIncludeLocation());
+        callAppenders(event);
+        logParent(event);
+    }
+
+    private void logParent(final LogEvent event) {
+        if (additive && parent != null) {
+            parent.log(event);
         }
     }
 
@@ -435,7 +451,6 @@ public class LoggerConfig extends AbstractFilterable {
         }
     }
 
-
     @Override
     public String toString() {
         return Strings.isEmpty(name) ? "root" : name;