这个Logback模式有什么问题?

13

我使用这个模式:

   <pattern>%d{HH:mm:ss.SSS} %-5level %logger{36} - (%file:%line) - %msg%n</pattern>

然而输出结果看起来像是:

09:42:25.811 WARN a.a.an.dao.api.ANApi - (ANApi.java:153

模式似乎在 %line 之后被截断了(如果我使用 %L 也会发生这种情况) - 我做错了什么?

我需要这个特定的模式,以便Eclipse控制台能够识别它。

1个回答

19

()有特殊含义,正如logback网站所解释的:

在PatternLayout中,括号可以用于分组转换模式。因此,'('和')'具有特殊含义,如果要将它们用作字面量,则需要进行转义。下面进一步解释了括号的特殊性质。

在您的情况下,您需要使用反斜杠escape them with a backslash进行转义:

<pattern>%d{HH:mm:ss.SSS} %-5level %logger{36} - \(%file:%line\) - %msg%n</pattern>

14
如果您在模式中使用变量,请使用双反斜杠:<property name="PATTERN" value="\\(%file:%ine\\)..."/> ... <pattern>${PATTERN}</pattern> - Stephan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接