[#1238] Correctly log the content of the MessageBuf and not depend on MessageBuf.toString()
Add an extra static method to BufUtil which will convert the content of any MessaBuf implementation to a String
This commit is contained in:
parent
2a162eb140
commit
d34daebeca
@ -25,6 +25,7 @@ import java.nio.charset.Charset;
|
|||||||
import java.nio.charset.CharsetDecoder;
|
import java.nio.charset.CharsetDecoder;
|
||||||
import java.nio.charset.CharsetEncoder;
|
import java.nio.charset.CharsetEncoder;
|
||||||
import java.nio.charset.CoderResult;
|
import java.nio.charset.CoderResult;
|
||||||
|
import java.util.Iterator;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A collection of utility methods that is related with handling {@link ByteBuf}, {@link MessageBuf}, and their
|
* A collection of utility methods that is related with handling {@link ByteBuf}, {@link MessageBuf}, and their
|
||||||
@ -417,5 +418,29 @@ public final class BufUtil {
|
|||||||
return dst.flip().toString();
|
return dst.flip().toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return the content of the given {@link MessageBuf} as string representation.
|
||||||
|
*/
|
||||||
|
public static String contentToString(MessageBuf<?> buf) {
|
||||||
|
if (buf.isEmpty()) {
|
||||||
|
return "[]";
|
||||||
|
}
|
||||||
|
Iterator<?> it = buf.iterator();
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
sb.append('[');
|
||||||
|
while (it.hasNext()) {
|
||||||
|
Object msg = it.next();
|
||||||
|
if (msg == buf) {
|
||||||
|
sb.append('(' + buf.getClass().getSimpleName() + ')');
|
||||||
|
} else {
|
||||||
|
sb.append(msg);
|
||||||
|
}
|
||||||
|
if (it.hasNext()) {
|
||||||
|
sb.append(", ");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return sb.append(']').toString();
|
||||||
|
}
|
||||||
|
|
||||||
private BufUtil() { }
|
private BufUtil() { }
|
||||||
}
|
}
|
||||||
|
@ -15,6 +15,7 @@
|
|||||||
*/
|
*/
|
||||||
package io.netty.handler.logging;
|
package io.netty.handler.logging;
|
||||||
|
|
||||||
|
import io.netty.buffer.BufUtil;
|
||||||
import io.netty.buffer.MessageBuf;
|
import io.netty.buffer.MessageBuf;
|
||||||
import io.netty.buffer.Unpooled;
|
import io.netty.buffer.Unpooled;
|
||||||
import io.netty.channel.ChannelHandlerContext;
|
import io.netty.channel.ChannelHandlerContext;
|
||||||
@ -107,6 +108,6 @@ public class MessageLoggingHandler
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected String formatBuffer(String message, MessageBuf<Object> buf) {
|
protected String formatBuffer(String message, MessageBuf<Object> buf) {
|
||||||
return message + '(' + buf.size() + "): " + buf;
|
return message + '(' + buf.size() + "): " + BufUtil.contentToString(buf);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user