diff --git a/artemis-protocols/artemis-stomp-protocol/src/main/java/org/apache/activemq/artemis/core/protocol/stomp/StompConnection.java b/artemis-protocols/artemis-stomp-protocol/src/main/java/org/apache/activemq/artemis/core/protocol/stomp/StompConnection.java index f7accb1ea6bd..96833ae7085c 100644 --- a/artemis-protocols/artemis-stomp-protocol/src/main/java/org/apache/activemq/artemis/core/protocol/stomp/StompConnection.java +++ b/artemis-protocols/artemis-stomp-protocol/src/main/java/org/apache/activemq/artemis/core/protocol/stomp/StompConnection.java @@ -582,6 +582,27 @@ public void handleFrame(StompFrame request) { } } + public void logFrame(StompFrame request, boolean in) { + if (ActiveMQStompProtocolLogger.LOGGER.isDebugEnabled()) { + StringBuilder message = new StringBuilder() + .append("STOMP(") + .append(getRemoteAddress()) + .append(", ") + .append(this.getID()) + .append("):"); + + if (in) { + message.append(" IN << "); + } else { + message.append("OUT >> "); + } + + message.append(request); + + ActiveMQStompProtocolLogger.LOGGER.debug(message.toString()); + } + } + public void sendFrame(StompFrame frame, StompPostReceiptFunction function) { manager.sendReply(this, frame, function); } diff --git a/artemis-protocols/artemis-stomp-protocol/src/main/java/org/apache/activemq/artemis/core/protocol/stomp/StompFrame.java b/artemis-protocols/artemis-stomp-protocol/src/main/java/org/apache/activemq/artemis/core/protocol/stomp/StompFrame.java index 439eba28237c..1ba5d382d830 100644 --- a/artemis-protocols/artemis-stomp-protocol/src/main/java/org/apache/activemq/artemis/core/protocol/stomp/StompFrame.java +++ b/artemis-protocols/artemis-stomp-protocol/src/main/java/org/apache/activemq/artemis/core/protocol/stomp/StompFrame.java @@ -77,8 +77,12 @@ public int getEncodedSize() throws Exception { @Override public String toString() { - return "StompFrame[command=" + command + ", headers=" + headers + ", content= " + this.body + " bytes " + - Arrays.toString(bytesBody); + return new StringBuilder() + .append("StompFrame[command=").append(command) + .append(", headers=").append(headers) + .append(", content= ").append(this.body) + .append(", bytes= ").append(Arrays.toString(bytesBody)) + .toString(); } public boolean isPing() { diff --git a/artemis-protocols/artemis-stomp-protocol/src/main/java/org/apache/activemq/artemis/core/protocol/stomp/StompProtocolManager.java b/artemis-protocols/artemis-stomp-protocol/src/main/java/org/apache/activemq/artemis/core/protocol/stomp/StompProtocolManager.java index 62df6e5a4e7b..19a00626db98 100644 --- a/artemis-protocols/artemis-stomp-protocol/src/main/java/org/apache/activemq/artemis/core/protocol/stomp/StompProtocolManager.java +++ b/artemis-protocols/artemis-stomp-protocol/src/main/java/org/apache/activemq/artemis/core/protocol/stomp/StompProtocolManager.java @@ -155,6 +155,7 @@ public void handleBuffer(final RemotingConnection connection, final ActiveMQBuff try { invokeInterceptors(this.incomingInterceptors, request, conn); + conn.logFrame(request, true); conn.handleFrame(request); } finally { server.getStorageManager().clearContext(); @@ -186,11 +187,8 @@ public List websocketSubprotocolIdentifiers() { // Public -------------------------------------------------------- public boolean send(final StompConnection connection, final StompFrame frame) { - if (ActiveMQStompProtocolLogger.LOGGER.isTraceEnabled()) { - ActiveMQStompProtocolLogger.LOGGER.trace("sent " + frame); - } - invokeInterceptors(this.outgoingInterceptors, frame, connection); + connection.logFrame(frame, false); synchronized (connection) { if (connection.isDestroyed()) {