问题描述
我有很长的日志消息要通过 rsyslog
传递。日志是通过 syslogj
库生成的,该库将日志分成 1024 个字符长度的块,然后将它们发送到 rsyslog
(基于 here 的注释):
有些应用程序不会忽略 RFC tho,log4j 1.2.15 就是其中之一(也可能是更高版本)。 如果消息的大小 >= 1024 字节,log4j 会将其分割并发送 2 条消息,而不管 MTU 是多少。
AFAIK 这与 rsyslog 无关,因为我们已经有来自远程来源的大量日志,而且在 $MaxMessageSize 64k
中设置 /var/rsyslog.conf
也没有任何改变。
我们如何增加 syslog4j
中的消息大小? org.productivity.java.syslog4j.SyslogConstants
类中有一个常量表示 1024 大小,但我不确定它是否与我的问题有关:
public static final int SYSLOG_BUFFER_SIZE = 1024;
此外,没有找到适合此工作的任何方法。 (如下图)
SyslogIF syslogInstance;
syslogInstance = Syslog.getInstance("tcp");
syslogInstance.getConfig().setHost(host);
syslogInstance.getConfig().setPort(port);
P.s:This question 显然有类似的问题,但既没有提到它是通过 syslog4j
也没有得到任何答案。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)