在log4j中,我们如何在模式中表示多个空格(如:\s+
)?
我有一个像%d{ISO8601}\t%t\t%m %n
这样的模式,但是当我通过电锯和LogMX进行解析时,制表符分离是不可靠的。我正在寻找替换多个空格分隔而不是制表符分隔,但我找不到任何。
感谢任何帮助。谢谢。
答案 0 :(得分:2)
log4j中的布局模式不是正则表达式模式,不用于搜索字符串。正如其名称所示,它用于布置要由log4j打印的消息。有了类似\ s +的东西,它怎么知道要打印多少个空格?因此,如果在消息布局中需要多个空格,则必须在模式中明确地键入这些空格。
答案 1 :(得分:1)
我不确定你真正想要实现的目标,但你应该看看" 格式修饰符" PatternLayout documentation的解释。
答案 2 :(得分:0)
我刚尝试了Log4j模式,LogMX正确解析了新生成的日志文件(使用带有此模式的Log4jPattern解析器)。你能解释"当我解析" 时,标签分离是不可靠的吗?
尽管%m
和%n
之间的额外空格字符很奇怪:每条日志消息都应以空格字符结尾才能正确解析。
PS:我同意@FrVaBe和@Lolo的回答
答案 3 :(得分:0)
Chainsaw使用log4j的'LogFilePatternReceiver'来处理日志文件。
LogFilePatternReceiver具有合并多个空格的代码,但该代码使用[] +而不是\ s +
我会考虑将其更改为使用\ s +。