You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ch...@apache.org on 2013/06/20 17:43:45 UTC

svn commit: r1495057 - in /activemq/trunk/activemq-amqp/src: main/java/org/apache/activemq/transport/amqp/ test/java/org/apache/activemq/transport/amqp/joram/ test/resources/

Author: chirino
Date: Thu Jun 20 15:43:44 2013
New Revision: 1495057

URL: http://svn.apache.org/r1495057
Log:
Improve how trace logging is handled in the AMQP transport.

Modified:
    activemq/trunk/activemq-amqp/src/main/java/org/apache/activemq/transport/amqp/AmqpProtocolConverter.java
    activemq/trunk/activemq-amqp/src/main/java/org/apache/activemq/transport/amqp/AmqpTransportFilter.java
    activemq/trunk/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/joram/ActiveMQAdmin.java
    activemq/trunk/activemq-amqp/src/test/resources/log4j.properties

Modified: activemq/trunk/activemq-amqp/src/main/java/org/apache/activemq/transport/amqp/AmqpProtocolConverter.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-amqp/src/main/java/org/apache/activemq/transport/amqp/AmqpProtocolConverter.java?rev=1495057&r1=1495056&r2=1495057&view=diff
==============================================================================
--- activemq/trunk/activemq-amqp/src/main/java/org/apache/activemq/transport/amqp/AmqpProtocolConverter.java (original)
+++ activemq/trunk/activemq-amqp/src/main/java/org/apache/activemq/transport/amqp/AmqpProtocolConverter.java Thu Jun 20 15:43:44 2013
@@ -102,7 +102,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 class AmqpProtocolConverter {
-
+    static final Logger TRACE_FRAMES = AmqpTransportFilter.TRACE_FRAMES;
     public static final EnumSet<EndpointState> UNINITIALIZED_SET = EnumSet.of(EndpointState.UNINITIALIZED);
     public static final EnumSet<EndpointState> INITIALIZED_SET = EnumSet.complementOf(UNINITIALIZED_SET);
     public static final EnumSet<EndpointState> ACTIVE_STATE = EnumSet.of(EndpointState.ACTIVE);
@@ -126,27 +126,32 @@ class AmqpProtocolConverter {
     public AmqpProtocolConverter(AmqpTransport transport, BrokerContext brokerContext) {
         this.amqpTransport = transport;
         this.protonTransport.bind(this.protonConnection);
-        if (transport.isTrace()) {
+        updateTracer();
+    }
+
+    void updateTracer() {
+        if (amqpTransport.isTrace()) {
             this.protonTransport.setProtocolTracer(new ProtocolTracer() {
                 @Override
                 public void receivedFrame(TransportFrame transportFrame) {
-                    if (LOG.isDebugEnabled()) {
-                        LOG.debug(String.format("%s | RECV: %s",
-                            amqpTransport.getRemoteAddress(), transportFrame.getBody()));
+                    if (TRACE_FRAMES.isTraceEnabled()) {
+                        TRACE_FRAMES.trace(String.format("%s | RECV: %s",
+                            AmqpProtocolConverter.this.amqpTransport.getRemoteAddress(), transportFrame.getBody()));
                     }
                 }
 
                 @Override
                 public void sentFrame(TransportFrame transportFrame) {
-                    if (LOG.isDebugEnabled()) {
-                        LOG.debug(String.format("%s | SENT: %s",
-                            amqpTransport.getRemoteAddress(), transportFrame.getBody()));
+                    if (TRACE_FRAMES.isTraceEnabled()) {
+                        TRACE_FRAMES.trace(String.format("%s | SENT: %s",
+                            AmqpProtocolConverter.this.amqpTransport.getRemoteAddress(), transportFrame.getBody()));
                     }
                 }
             });
         }
     }
 
+
     void pumpProtonToSocket() {
         try {
             int size = 1024 * 64;

Modified: activemq/trunk/activemq-amqp/src/main/java/org/apache/activemq/transport/amqp/AmqpTransportFilter.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-amqp/src/main/java/org/apache/activemq/transport/amqp/AmqpTransportFilter.java?rev=1495057&r1=1495056&r2=1495057&view=diff
==============================================================================
--- activemq/trunk/activemq-amqp/src/main/java/org/apache/activemq/transport/amqp/AmqpTransportFilter.java (original)
+++ activemq/trunk/activemq-amqp/src/main/java/org/apache/activemq/transport/amqp/AmqpTransportFilter.java Thu Jun 20 15:43:44 2013
@@ -39,7 +39,8 @@ import java.security.cert.X509Certificat
  */
 public class AmqpTransportFilter extends TransportFilter implements AmqpTransport {
     private static final Logger LOG = LoggerFactory.getLogger(AmqpTransportFilter.class);
-    private static final Logger TRACE = LoggerFactory.getLogger(AmqpTransportFilter.class.getPackage().getName() + ".AMQPIO");
+    static final Logger TRACE_BYTES = LoggerFactory.getLogger(AmqpTransportFilter.class.getPackage().getName() + ".BYTES");
+    static final Logger TRACE_FRAMES = LoggerFactory.getLogger(AmqpTransportFilter.class.getPackage().getName() + ".FRAMES");
     private final AmqpProtocolConverter protocolConverter;
 //    private AmqpInactivityMonitor monitor;
     private AmqpWireFormat wireFormat;
@@ -86,8 +87,8 @@ public class AmqpTransportFilter extends
 
     public void onCommand(Object command) {
         try {
-            if (trace) {
-                TRACE.trace("Received: \n" + command);
+            if (trace && TRACE_BYTES.isTraceEnabled()) {
+                TRACE_BYTES.trace("Received: \n" + command);
             }
             protocolConverter.lock.lock();
             try {
@@ -112,8 +113,8 @@ public class AmqpTransportFilter extends
 
     public void sendToAmqp(Object command) throws IOException {
         assert protocolConverter.lock.isHeldByCurrentThread();
-        if (trace) {
-            TRACE.trace("Sending: \n" + command);
+        if (trace && TRACE_BYTES.isTraceEnabled()) {
+            TRACE_BYTES.trace("Sending: \n" + command);
         }
         Transport n = next;
         if (n != null) {
@@ -138,6 +139,7 @@ public class AmqpTransportFilter extends
 
     public void setTrace(boolean trace) {
         this.trace = trace;
+        this.protocolConverter.updateTracer();
     }
 
 //    @Override

Modified: activemq/trunk/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/joram/ActiveMQAdmin.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/joram/ActiveMQAdmin.java?rev=1495057&r1=1495056&r2=1495057&view=diff
==============================================================================
--- activemq/trunk/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/joram/ActiveMQAdmin.java (original)
+++ activemq/trunk/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/joram/ActiveMQAdmin.java Thu Jun 20 15:43:44 2013
@@ -56,29 +56,33 @@ public class ActiveMQAdmin implements Ad
         }
     }
 
-    static public void enableJMSFrameTracing() throws FileNotFoundException {
-        final SimpleFormatter formatter = new SimpleFormatter();
-        String outputStreamName = System.getProperty("java.io.tmpdir") + "/amqp-trace.txt";
-        final PrintStream out = new PrintStream(new FileOutputStream(new File(outputStreamName)));
-        Handler handler = new Handler() {
-            @Override
-            public void publish(LogRecord r) {
-                out.println(String.format("%s:%s", r.getLoggerName(), r.getMessage()));
-            }
-
-            @Override
-            public void flush() {
-                out.flush();
-            }
-
-            @Override
-            public void close() throws SecurityException {
-            }
-        };
-
-        Logger log = Logger.getLogger("FRM");
-        log.addHandler(handler);
-        log.setLevel(Level.FINEST);
+    static public void enableJMSFrameTracing() {
+        try {
+            final SimpleFormatter formatter = new SimpleFormatter();
+            String outputStreamName = "amqp-trace.txt";
+            final PrintStream out = new PrintStream(new FileOutputStream(new File(outputStreamName)));
+            Handler handler = new Handler() {
+                @Override
+                public void publish(LogRecord r) {
+                    out.println(String.format("%s:%s", r.getLoggerName(), r.getMessage()));
+                }
+
+                @Override
+                public void flush() {
+                    out.flush();
+                }
+
+                @Override
+                public void close() throws SecurityException {
+                }
+            };
+
+            Logger log = Logger.getLogger("FRM");
+            log.addHandler(handler);
+            log.setLevel(Level.FINEST);
+        } catch (FileNotFoundException e) {
+            throw new RuntimeException(e);
+        }
     }
 
     protected BrokerService createBroker() throws Exception {

Modified: activemq/trunk/activemq-amqp/src/test/resources/log4j.properties
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-amqp/src/test/resources/log4j.properties?rev=1495057&r1=1495056&r2=1495057&view=diff
==============================================================================
--- activemq/trunk/activemq-amqp/src/test/resources/log4j.properties (original)
+++ activemq/trunk/activemq-amqp/src/test/resources/log4j.properties Thu Jun 20 15:43:44 2013
@@ -20,7 +20,8 @@
 #
 log4j.rootLogger=WARN, console, file
 log4j.logger.org.apache.activemq=INFO
-log4j.logger.org.apache.activemq.transport.amqp=TRACE
+log4j.logger.org.apache.activemq.transport.amqp=INFO
+log4j.logger.org.apache.activemq.transport.amqp.FRAMES=TRACE
 log4j.logger.org.fusesource=INFO
 
 # Console will only display warnnings