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

    技术2022-07-11  73

    依赖包

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

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

    设置长度解决。

     

    中文截断原因:

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

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

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

    该怎么办呢?

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

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

    Processed: 0.012, SQL: 12