Return-Path: X-Original-To: apmail-activemq-commits-archive@www.apache.org Delivered-To: apmail-activemq-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id F0B04CB9C for ; Thu, 20 Jun 2013 15:44:10 +0000 (UTC) Received: (qmail 11437 invoked by uid 500); 20 Jun 2013 15:44:10 -0000 Delivered-To: apmail-activemq-commits-archive@activemq.apache.org Received: (qmail 11359 invoked by uid 500); 20 Jun 2013 15:44:09 -0000 Mailing-List: contact commits-help@activemq.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@activemq.apache.org Delivered-To: mailing list commits@activemq.apache.org Received: (qmail 11346 invoked by uid 99); 20 Jun 2013 15:44:09 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 20 Jun 2013 15:44:09 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 20 Jun 2013 15:44:06 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 765F923889EB; Thu, 20 Jun 2013 15:43:45 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: 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/ Date: Thu, 20 Jun 2013 15:43:45 -0000 To: commits@activemq.apache.org From: chirino@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20130620154345.765F923889EB@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org 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 UNINITIALIZED_SET = EnumSet.of(EndpointState.UNINITIALIZED); public static final EnumSet INITIALIZED_SET = EnumSet.complementOf(UNINITIALIZED_SET); public static final EnumSet 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