You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2014/07/19 20:11:54 UTC

svn commit: r1611939 - /tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/util/JuliLogStream.java

Author: rmannibucau
Date: Sat Jul 19 18:11:54 2014
New Revision: 1611939

URL: http://svn.apache.org/r1611939
Log:
logging a class even in async log mode where we lost the info

Modified:
    tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/util/JuliLogStream.java

Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/util/JuliLogStream.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/util/JuliLogStream.java?rev=1611939&r1=1611938&r2=1611939&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/util/JuliLogStream.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/util/JuliLogStream.java Sat Jul 19 18:11:54 2014
@@ -107,6 +107,10 @@ public class JuliLogStream implements Lo
     }
 
     public static class OpenEJBLogRecord extends LogRecord {
+        private static final String LOGGER = org.apache.openejb.util.Logger.class.getName();
+        private static final String ASYNC_LOG_NAME = "org.apache.openejb.util.LogStreamAsync";
+        private static final String ASYNC_LOG_THREAD = ASYNC_LOG_NAME + "$Consumer";
+
         /**
          * The name of the class that issued the logging call.
          *
@@ -173,16 +177,22 @@ public class JuliLogStream implements Lo
          * Init the sourceClass and sourceMethod fields.
          */
         private void initSource() {
-            if (!sourceInited) {
+            if (!this.sourceInited) {
                 // search back up the stack for the first use of the OpenEJB Logger
                 final StackTraceElement[] elements = new Throwable().getStackTrace();
                 int i = 0;
                 String current = null;
                 for (; i < elements.length; i++) {
                     current = elements[i].getClassName();
-                    if (current.equals(org.apache.openejb.util.Logger.class.getName())) {
+                    if (current.equals(LOGGER)) {
                         break;
                     }
+                    if (current.equals(ASYNC_LOG_THREAD)) { // kind of mock since we lost the info
+                        this.sourceClassName = ASYNC_LOG_NAME;
+                        this.sourceMethodName = elements[i].getMethodName();
+                        this.sourceInited = true;
+                        return;
+                    }
                 }
 
                 // Skip any internal OpenEJB Logger call
@@ -195,7 +205,8 @@ public class JuliLogStream implements Lo
                     this.sourceClassName = elements[i].getClassName();
                     this.sourceMethodName = elements[i].getMethodName();
                 }
-                sourceInited = true;
+
+                this.sourceInited = true;
             }
         }
     }