我通过 log4j 和 SyslogAppender 将数据记录到 Splunk。有时,信息在 Splunk 中显示为省略号 (...),而不是带有一些奇怪间距的实际文本。当我将相同的事件记录到 RollingFileAppender 时,它会正常记录。有谁知道为什么会发生这种情况以及如何解决它?谢谢!
示例: InboundTxnDate: 20130926 16:53:14:475
Out...
...boundTxnTypeCode: UNK
这就是 syslog appenders 的工作方式,如果日志消息大于 1019 字节,它们会拆分日志消息。当日志消息被拆分时,这条消息将以省略号结尾,下一条消息以省略号开头。消息的限制(1019 字节)是硬编码的,并且不能通过 log4j 中的任何配置来更改。查看RFC 3164并查看SyslogAppender的源代码
有谁知道为什么会这样
Ondřej Benkovský 回答得很好,我没有什么要补充的。
如何解决?
如果分割线是 Splunk 中同一事件的一部分,您可以通过编辑$SPLUNK_HOME/etc/system/local/props.conf
和添加这样的节来加入它们:
[<spec>]
SEDCMD-join_log4j_syslog_lines=s/\.\.\.[\r\n]+\.\.\.//g
这将在索引时加入行并删除省略号。
请注意,您需要按照props.conf<spec>
文档中的详细说明进行更改。
您可以使用正则表达式搜索命令来确保它正常工作:
| regex "\.\.\.[\r\n]+\.\.\."