我正在尝试使用日志查看器(无论哪一个)来解析我的日志文件。
我的log4j模式就是这个。
%p [%t](%C {1}:%M():%L)%d {dd / MM / yyyy-HH:mm:ss,SSS} S:%X {serviceType} N: %X {requestID} - %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(键)的属性类型,但我似乎要么错过使用它们或者它们与%X无关
所以问题是如何实现模式,因此它将读取%X参数。
感谢。
答案 0 :(得分:3)
好的,我想我看到了问题。
您的应用程序使用log4J MDC,因为它在模式布局中使用%X。您的日志查看器似乎只支持NDC。
NDC的log4j模式布局是%x(小写)。如果您对应用程序有控制权,则必须更改MDC - > NDC并修改log4j.xml以使用%x而不是%X。如果应用程序很庞大,这可能是一项重大任务......
另一种解决方案是找到支持MDC(%X)的日志查看器
我试图四处寻找PROP(关键),但是没有太多的文档; - (
祝你好运