syslog4j发送日志有中文会产生截断
依赖包
<dependency> <groupId>org.syslog4j</groupId> <artifactId>syslog4j</artifactId> <version>0.9.30</version> </dependency>
如果全是英文就不会截断,如果截断那就是太长了,可以通过
设置长度解决。
中文截断原因:
1、发送数据时这里的message.length的长度是字符的长度
2、java中的 PlainDatagramSocketImpl类send方法 是根据 字符长度*2 发送数据的长度
3、而中文对应的字节数是3个字节不是两个字节,所以就会截断大约是中文个数的长度
该怎么办呢?
发送数据的时候通过空格的方式将数据补全。
在发送数据之前想判断这里有多少个字符是中文,如果是中文就添加空格,然后再发送就好。