Github user ppatierno commented on a diff in the pull request: https://github.com/apache/activemq-artemis/pull/1592#discussion_r145321323 --- Diff: artemis-protocols/artemis-mqtt-protocol/src/main/java/org/apache/activemq/artemis/core/protocol/mqtt/MQTTUtil.java --- @@ -149,16 +160,62 @@ public static void logMessage(MQTTSessionState state, MqttMessage message, boole if (message.fixedHeader() != null) { log.append(message.fixedHeader().messageType().toString()); - if (message.variableHeader() instanceof MqttPublishVariableHeader) { - log.append("(" + ((MqttPublishVariableHeader) message.variableHeader()).messageId() + ") " + message.fixedHeader().qosLevel()); - } else if (message.variableHeader() instanceof MqttMessageIdVariableHeader) { + if (message.variableHeader() instanceof MqttMessageIdVariableHeader) { log.append("(" + ((MqttMessageIdVariableHeader) message.variableHeader()).messageId() + ")"); } - if (message.fixedHeader().messageType() == MqttMessageType.SUBSCRIBE) { - for (MqttTopicSubscription sub : ((MqttSubscribeMessage) message).payload().topicSubscriptions()) { - log.append("\n\t" + sub.topicName() + " : " + sub.qualityOfService()); - } + switch (message.fixedHeader().messageType()) { + case PUBLISH: + MqttPublishVariableHeader publishHeader = (MqttPublishVariableHeader) message.variableHeader(); + log.append("(" + publishHeader.packetId() + ")") + .append(" topic=" + publishHeader.topicName()) + .append(", qos=" + message.fixedHeader().qosLevel()) + .append(", retain=" + message.fixedHeader().isRetain()) + .append(", dup=" + message.fixedHeader().isDup()); + if (logUTF8PublishPayload != null) { + log.append(" payload=" + ((MqttPublishMessage)message).payload().toString(StandardCharsets.UTF_8)); + } + break; + case CONNECT: + MqttConnectVariableHeader connectHeader = (MqttConnectVariableHeader) message.variableHeader(); + MqttConnectPayload payload = ((MqttConnectMessage)message).payload(); + log.append(" name=").append(connectHeader.name()) + .append(", version=").append(connectHeader.version()) --- End diff -- name and version are related to the protocol (i.e. "MQTT" and protocol level which is 4 for 3.1.1). @jbertram what do you think to log something like, protocol=(name, version) ? without having two distinct fields ?
---