When I'm using KryoNet, it has debug logging so you can see what classes are being sent. This is generally not enough information to do much debugging. It also has trace logging, so you can see every little step of serialization. This is generally too much information (unless debugging serialization rather than game logic). So what I end up doing is this:
1 2 3 4 5
| StringWriter stringWriter = new StringWriter(); YamlWriter yamlWriter = new YamlWriter(stringWriter); yamlWriter.write(message); yamlWriter.close(); System.out.println(stringWriter); |
This uses YamlBeans to dump all the fields on an object as YAML, which is nice and human readable.

YamlBeans uses reflection to serialize very similar to KryoNet: handles object graphs, looks at fields the same way, etc. Example output:
!com.esotericsoftware.arcanetactics.actions.server.CastAction
action: !com.esotericsoftware.arcanetactics.actions.FireballAction
id: 1
characterID: 6
column: 7
row: 3
x: 832
y: 284
!com.esotericsoftware.arcanetactics.actions.server.TimerCancelAction
id: 1
completed: true
!com.esotericsoftware.arcanetactics.actions.server.HealthAction
characterID: 1
effectType: fireball_hit
value: -5
!com.esotericsoftware.arcanetactics.actions.CloakTimer
characterID: 6