3

我正在尝试使用日志查看器(不管是哪一个)来解析我的日志文件。

我的 log4j 模式是这样的。

%p [%t] (%C{1}:%M():%L) %d{dd/MM/yyyy-HH:mm:ss,SSS} S:%X{serviceType} N:%X{请求ID}- %m%n

日志查看器(至少是开源的)需要您实现一个模式,以便他们能够读取文件。

例如:对于 log4j 模式:%p [%t] (%C{1}:%M():%L) %d{dd/MM/yyyy-HH:mm:ss,SSS} - %m% n

日志查看器模式为: pattern= pattern=LEVEL [THREAD] (CLASS:METHOD():LINE) TIMESTAMP - MESSAGE

该示例运行良好。

但我无法以任何方式解析 %X 属性。我已经看到有属性类型 NDC 和 PROP(key) 但我似乎要么错过使用它们,要么它们与 %X 无关

所以问题是如何实现模式,以便读取 %X 参数。

谢谢。

4

1 回答 1

3

好的,我想我看到了问题。

您的应用程序使用 log4J MDC,因为它在模式布局中使用 %X。您的日志查看器似乎只支持 NDC。

NDC 的 log4j 模式布局为 %x(小写)。

如果您可以控制应用程序,则必须更改 MDC -> NDC 并修改 log4j.xml 以使用 %x 而不是 %X。如果应用程序很大,这可能是一项艰巨的任务......

另一种解决方案是找到支持 MDC(%X) 的日志查看器

我试图四处寻找 PROP(key),但上面没有太多文档;-(

祝你好运

于 2011-08-31T13:54:35.033 回答