Log4net RemoteSyslogAppender 将 <14> 添加到所有消息
Log4net RemoteSyslogAppender adding <14> to all message
我正在使用带有 RemoteSyslogAppender 的 log4net 将日志发送到 logstash/elasticsearch。
附加程序会自动在消息前面添加“<14>”,从而无法对堆栈跟踪进行分组。
这个数字出现在 log4net 发送的每条消息中的标识值之前。我试图添加具有空值的 "identity" 标签,该标签已删除消息的 "identity" 但是 <14> 仍然存在。
<identity value=""/>
这是我当前的 appender 配置
<appender name="RemoteSyslogAppender" type="log4net.Appender.RemoteSyslogAppender" >
<identity value="somemessage" />
<param name="RemoteAddress" value="10.3.145.130" />
<param name="RemotePort" value="5140" />
<layout type="log4net.Layout.PatternLayout, log4net">
<param name="ConversionPattern" value="%-5level - %message%newline" />
</layout>
</appender>
使用此配置,我仍然在 "identity" 值(somemessage)
之前得到 <14>
"message" => "<14>somemessage: at System.IO.StreamReader..ctor(String path, Encoding encoding, Boolean detectEncodingFromByteOrderMarks, Int32 bufferSize, Boolean checkHost)",
logstash 配置在这里无关紧要,但如果有帮助,我可以稍后将其包括在内,我现在使用 {%GREEDYDATA},一旦我弄清楚如何对它们进行分组,我将努力正确解析它。
谢谢
作为 RemoteSyslogAppender documentation states it implements a client for the BSD syslog protocol, defined in RFC 3164。 <14>
字符串是该协议的一部分,描述了消息的设施和严重性,即系统的哪个部分发出了消息以及它的重要性。有关完整说明,请参阅第 4.1.1 节。
您可以使用 grok 删除或提取此值,例如像这样:
filter {
grok {
match => ["message", "<%{INT}>%{GREEDYDATA:message}"]
overwrite => ["message"]
}
}
如果您想将数值转换为人类可读的值,您可以使用 syslog_pri filter.
我正在使用带有 RemoteSyslogAppender 的 log4net 将日志发送到 logstash/elasticsearch。 附加程序会自动在消息前面添加“<14>”,从而无法对堆栈跟踪进行分组。
这个数字出现在 log4net 发送的每条消息中的标识值之前。我试图添加具有空值的 "identity" 标签,该标签已删除消息的 "identity" 但是 <14> 仍然存在。
<identity value=""/>
这是我当前的 appender 配置
<appender name="RemoteSyslogAppender" type="log4net.Appender.RemoteSyslogAppender" >
<identity value="somemessage" />
<param name="RemoteAddress" value="10.3.145.130" />
<param name="RemotePort" value="5140" />
<layout type="log4net.Layout.PatternLayout, log4net">
<param name="ConversionPattern" value="%-5level - %message%newline" />
</layout>
</appender>
使用此配置,我仍然在 "identity" 值(somemessage)
之前得到 <14>"message" => "<14>somemessage: at System.IO.StreamReader..ctor(String path, Encoding encoding, Boolean detectEncodingFromByteOrderMarks, Int32 bufferSize, Boolean checkHost)",
logstash 配置在这里无关紧要,但如果有帮助,我可以稍后将其包括在内,我现在使用 {%GREEDYDATA},一旦我弄清楚如何对它们进行分组,我将努力正确解析它。
谢谢
作为 RemoteSyslogAppender documentation states it implements a client for the BSD syslog protocol, defined in RFC 3164。 <14>
字符串是该协议的一部分,描述了消息的设施和严重性,即系统的哪个部分发出了消息以及它的重要性。有关完整说明,请参阅第 4.1.1 节。
您可以使用 grok 删除或提取此值,例如像这样:
filter {
grok {
match => ["message", "<%{INT}>%{GREEDYDATA:message}"]
overwrite => ["message"]
}
}
如果您想将数值转换为人类可读的值,您可以使用 syslog_pri filter.