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 ?


---

Reply via email to