Github user jbertram commented on a diff in the pull request:

    https://github.com/apache/activemq-artemis/pull/1592#discussion_r145231515
  
    --- Diff: 
artemis-protocols/artemis-mqtt-protocol/src/main/java/org/apache/activemq/artemis/core/protocol/mqtt/MQTTUtil.java
 ---
    @@ -149,16 +154,52 @@ 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());
    +                     //.append(" payload=" + 
((MqttPublishMessage)message).payload().toString(StandardCharsets.UTF_8));
    --- End diff --
    
    I disagree that this should be removed as it can serve as a really 
convenient way to look at the payload granted they're UTF-8 encoded strings.  
The only reason it's commented out is because the MQTT spec has no rules on the 
format of the payload.  It's just an array of bytes.  However, if you happen to 
be working with UTF-8 encoded string then this might prove helpful.


---

Reply via email to