java - 如何在java应用程序中增加syslog4j发送到rsyslog的消息大小

问题描述

我有很长的日志消息要通过 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 (将#修改为@)