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;
             }
         }
     }


Reply via email to