电锯中的多行消息

时间:2013-01-16 21:21:05

标签: logging apache-chainsaw

我正在使用来自http://people.apache.org/~sdeboy/的电锯2.1.0快照
我能够将其设置为解析日志文件,但它总是将多行消息拆分为多个单行消息(包括所有其他字段到第一条消息)
如何正确解析多行消息?有没有解决方法或替代方案?

编辑:文件中的几行:

[<proceed>(2)] INFO 2013-01-16 05:04:23,728 xmlstream.py:start_tls:740 ::: Negotiating TLS :::
[<proceed>(2)] INFO 2013-01-16 05:04:23,729 xmlstream.py:start_tls:741 ::: Using SSL version: 3 :::
[<proceed>(2)] DEBUG 2013-01-16 05:04:23,838 xmlstream.py:start_tls:809 ::: CERT: -----BEGIN CERTIFICATE-----
MIIDaDCCAtGgAwIBAgIKMfrHUQAAAABbMDANBgkqhkiG9w0BAQUFADBGMQswCQYD
VQQGEwJVUzETMBEGA1UEChMKR29vZ2xlIEluYzEiMCAGA1UEAxMZR29vZ2xlIElu
dGVybmV0IEF1dGhvcml0eTAeFw0xMjA2MDUwMDUyMTRaFw0xMzA2MDUwMTAyMTRa
MGMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1N
...
Zfhf9Lio+EplEmBc
-----END CERTIFICATE-----
 :::

,日志格式为"[NDC] LEVEL TIMESTAMP FILE:METHOD:LINE ::: MESSAGE :::"
(我试图在消息之前和之后放置唯一的分隔符来帮助解析)

1 个答案:

答案 0 :(得分:1)

尝试在接收器配置中将'appendNonMatches'设置为false。

如果这不起作用,请提供几行日志文件(单行和多行混合),我可以告诉您需要在配置方面做什么。

它可能也是一个错误,必须看到。

回复后的几点说明:

    如果你使用单一的日志框架/布局(不是随机嵌入printf样式的输出),那么
  • AppendNonMatches = false可能没问题。但是......如果将此设置设置为false,则将丢弃的匹配放在地板上,所以要小心..
  • 我从来没有打扰使用消息的结束分隔符进行测试 - 几乎要求消息是日志消息中的最后一个字段,因为消息字段中内容的潜在可变性。
  • 如果你有多行开头:(标签)at - 那些字段应转换为throwable字段。