- You can avoid to show will information if the isWillFlag is false so there aren't empty fields to show
- avoid to show the will message payload as you are avoiding to show the publish payload. I guess you are using an old version of the MQTT Netty codec where will payload is a String but in the newer version it's a byte array like publish payload
- having the CONNACK packet as well with the result code and if there is a session is useful
- having PUBACK, PUBREL, PUBCOMP are useful as well with related packet-id
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.
Yes I agree that is useful if you are using UTF8 encoded string as payload. Is it possible having this logging line as configurable (disabled by default) so that people using Strings can enable it for showing the payload.