graylog长日志丢日志的问题
环境:
C#.NET 使用 UDP 发送给graylog。
当日志内容(full_message)超过 21790 个汉字时,就报错:
一个在数据报套接字上发送的消息大于内部消息缓冲区或其他一些网络限制,或该用户用于接收数据报的缓冲区比数据报小。
21780 个汉字正常。
当full_message 全是英文时,21790 个英文是能正常发送的。
可能尝试的解决方案:
当full_message的内容超过2000字时,直接拆分发送。
一些补充测试:
如果你的full_message全是英文,那61790 以内是正常发送的。
如果超过 65535字节(Byte) 就挂了。
-
UTF8编码下,一个汉字占3Byte,65535/3= 21,845, 如果你的内容全是汉字,超过 21,845 左右就会报错。
实测,UTF8编码下一个英文占1Byte,如果你的内容全是英文,超过 65535 左右就会报错。
-