syslog4j发送日志有中文会产生截断

依赖包

<dependency>
    <groupId>org.syslog4j</groupId>
    <artifactId>syslog4j</artifactId>
    <version>0.9.30</version>
</dependency>

如果全是英文就不会截断,如果截断那就是太长了,可以通过

syslog4j发送日志有中文会产生截断

设置长度解决。

 

中文截断原因:

1、发送数据时这里的message.length的长度是字符的长度

syslog4j发送日志有中文会产生截断

2、java中的 PlainDatagramSocketImpl类send方法 是根据 字符长度*2 发送数据的长度

syslog4j发送日志有中文会产生截断

3、而中文对应的字节数是3个字节不是两个字节,所以就会截断大约是中文个数的长度

该怎么办呢?

      发送数据的时候通过空格的方式将数据补全。

syslog4j发送日志有中文会产生截断

在发送数据之前想判断这里有多少个字符是中文,如果是中文就添加空格,然后再发送就好。