diff --git a/servicebuilder-activemq/src/main/java/no/obos/util/servicebuilder/mq/ActiveMqListener.java b/servicebuilder-activemq/src/main/java/no/obos/util/servicebuilder/mq/ActiveMqListener.java index 0a7f181..0463d0f 100644 --- a/servicebuilder-activemq/src/main/java/no/obos/util/servicebuilder/mq/ActiveMqListener.java +++ b/servicebuilder-activemq/src/main/java/no/obos/util/servicebuilder/mq/ActiveMqListener.java @@ -91,7 +91,7 @@ private void handleMessage(MessageHandler handler, Message message, Session sess MDC.put(X_OBOS_REQUEST_ID, requestId); - log.info("Received message '{}'", truncateMessageForLogging(text)); + log.info("Received message '{}'", ActiveMqUtils.truncateMessageForLogging(text)); handler.handle(new ObjectMapper().readTree(text)); } catch (Exception e) { @@ -111,24 +111,6 @@ private void handleMessage(MessageHandler handler, Message message, Session sess } } - static String truncateMessageForLogging(String text) { - if (StringUtils.isEmpty(text) || text.length() <= MAX_LENGTH_PER_MESSAGE) { - return text; - } - try { - log.info("Truncating message for logging..."); - String truncatedText = text.substring(0, MAX_LENGTH_PER_MESSAGE); - String dataKey = "\"data\":"; - if (truncatedText.contains(dataKey)) { - return truncatedText.substring(0, truncatedText.indexOf(dataKey)) + dataKey + "\"...\"}"; - } - return truncatedText; - } catch (Exception e) { - log.warn("Failed to truncate message for logging"); - return text; - } - } - @Override public void requeueFailedMessages() { try { diff --git a/servicebuilder-activemq/src/main/java/no/obos/util/servicebuilder/mq/ActiveMqSender.java b/servicebuilder-activemq/src/main/java/no/obos/util/servicebuilder/mq/ActiveMqSender.java index 8f6ce26..55d7ea2 100644 --- a/servicebuilder-activemq/src/main/java/no/obos/util/servicebuilder/mq/ActiveMqSender.java +++ b/servicebuilder-activemq/src/main/java/no/obos/util/servicebuilder/mq/ActiveMqSender.java @@ -31,7 +31,7 @@ private void queueMessage(String message) { Session session = ActiveMqUtils.startSession(connection); try { - log.info("Sending message '{}' to {}", message, queue); + log.info("Sending message '{}' to {}", ActiveMqUtils.truncateMessageForLogging(message), queue); ActiveMqUtils.queueMessage(session, message, queue); } finally { ActiveMqUtils.closeConnection(session, connection); diff --git a/servicebuilder-activemq/src/main/java/no/obos/util/servicebuilder/mq/ActiveMqUtils.java b/servicebuilder-activemq/src/main/java/no/obos/util/servicebuilder/mq/ActiveMqUtils.java index 27ee368..bbe25fb 100644 --- a/servicebuilder-activemq/src/main/java/no/obos/util/servicebuilder/mq/ActiveMqUtils.java +++ b/servicebuilder-activemq/src/main/java/no/obos/util/servicebuilder/mq/ActiveMqUtils.java @@ -1,6 +1,8 @@ package no.obos.util.servicebuilder.mq; +import lombok.extern.slf4j.Slf4j; import org.apache.activemq.ActiveMQConnection; +import org.apache.commons.lang3.StringUtils; import org.slf4j.MDC; import javax.jms.JMSException; @@ -12,6 +14,7 @@ import static no.obos.util.servicebuilder.model.Constants.X_OBOS_REQUEST_ID; +@Slf4j class ActiveMqUtils { private static final String BROKER_URL_JUNIT = "vm://localhost"; @@ -67,4 +70,21 @@ static void closeConnection(Session session, ActiveMQConnection connection) { } } + static String truncateMessageForLogging(String text) { + if (StringUtils.isEmpty(text) || text.length() <= ActiveMqListener.MAX_LENGTH_PER_MESSAGE) { + return text; + } + try { + log.info("Truncating message for logging..."); + String truncatedText = text.substring(0, ActiveMqListener.MAX_LENGTH_PER_MESSAGE); + String dataKey = "\"data\":"; + if (truncatedText.contains(dataKey)) { + return truncatedText.substring(0, truncatedText.indexOf(dataKey)) + dataKey + "\"...\"}"; + } + return truncatedText; + } catch (Exception e) { + log.warn("Failed to truncate message for logging"); + return text; + } + } } diff --git a/servicebuilder-activemq/src/test/java/no/obos/util/servicebuilder/mq/ActiveMqListenerLoggingTest.java b/servicebuilder-activemq/src/test/java/no/obos/util/servicebuilder/mq/ActiveMqUtilsTruncateLoggingTest.java similarity index 96% rename from servicebuilder-activemq/src/test/java/no/obos/util/servicebuilder/mq/ActiveMqListenerLoggingTest.java rename to servicebuilder-activemq/src/test/java/no/obos/util/servicebuilder/mq/ActiveMqUtilsTruncateLoggingTest.java index 7cb4389..724e853 100644 --- a/servicebuilder-activemq/src/test/java/no/obos/util/servicebuilder/mq/ActiveMqListenerLoggingTest.java +++ b/servicebuilder-activemq/src/test/java/no/obos/util/servicebuilder/mq/ActiveMqUtilsTruncateLoggingTest.java @@ -4,11 +4,11 @@ import static org.assertj.core.api.Assertions.assertThat; -public class ActiveMqListenerLoggingTest { +public class ActiveMqUtilsTruncateLoggingTest { @Test public void handleNull() { - assertThat(ActiveMqListener.truncateMessageForLogging(null)).isEqualTo(null); + assertThat(ActiveMqUtils.truncateMessageForLogging(null)).isEqualTo(null); } @Test @@ -16,7 +16,7 @@ public void logNormalLengthMessage() { String msg = "{\"mottakerId\":13136040,\"message\":\"Hei Adam! Eva ber om å bli lagt til som beboer" + " i Lade Alle Hjem Boligsameie. Gå til Min bolig på https://vibbo.no/xxxx for å godta forespørselen.\",\"from\":\"Vibbo\",\"to\":\"99999999\"}"; - assertThat(ActiveMqListener.truncateMessageForLogging(msg)).isEqualTo(msg); + assertThat(ActiveMqUtils.truncateMessageForLogging(msg)).isEqualTo(msg); } @Test public void logLongMessageWithDataObject() { @@ -62,7 +62,7 @@ public void logLongMessageWithDataObject() { + "\"owner\":\"OBOS konsernet\",\"classification\":\"Beskyttet\",\"storageRoutine\":\"LS32\",\"template\":null,\"comment\":null," + "\"files\":[{\"name\":\"Kontoutskrift Santander høyrentekonto 280575114.pdf\",\"data\":\"...\"}"; - assertThat(ActiveMqListener.truncateMessageForLogging(msg)).isEqualTo(expectedLoggedMessage); + assertThat(ActiveMqUtils.truncateMessageForLogging(msg)).isEqualTo(expectedLoggedMessage); } @Test @@ -101,6 +101,6 @@ public void logLongMessageWithoutDataObject() { + "PiK557ML1cUqzG7m6VvvhJtfe3s9woZnP7z/2Xv9q9FR1P+za7ttUDNsW8rtrPfD5baF49+Xvp9jnhd8vX7zkwTRvZnga135Pn/7tz1p9umn7G3U633yi2n27/034d7Z3JrNyk508X0s" + "6t+7Dbe55bzf9h/t2u04vqxA1njzf6+3q18ilMOtM7zCp6hcJGls6vJmn76s7N5hb4HJw1nZoqnAyk+/HRrnG0DaVpYs0qmlTF/rM7+cxPneXz8LjW8sNZ2eym8b/FMw59vJuVe4zW" + "0vOrgxz+ONt+rmmVN4+TvOurNU1LmPa3h3jyrNs1Hv84foTz3vaZ4UqnOzqf5SnEfjuiQ33H01nRjgAAAI5luh"; - assertThat(ActiveMqListener.truncateMessageForLogging(msg).length()).isEqualTo(ActiveMqListener.MAX_LENGTH_PER_MESSAGE); + assertThat(ActiveMqUtils.truncateMessageForLogging(msg).length()).isEqualTo(ActiveMqListener.MAX_LENGTH_PER_MESSAGE); } } \ No newline at end of file