这个Logback模式有什么问题?

san*_*ity 11 java eclipse logging logback

我正在使用这种模式:

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

然而输出看起来像:

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

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

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

ass*_*ias 15

(并且)具有特殊含义,如在logback网站上所述:

在PatternLayout中,括号可用于对转换模式进行分组.因此,'('和')'具有特殊含义,如果打算用作文字,则需要进行转义.括号的特殊性质将在下面进一步说明.

在你的情况下,你需要用反斜杠逃避它们:

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

  • 如果为模式使用变量,请使用双反斜杠:`<property name ="PATTERN"value ="\\(%file:%ine \\)..."/> ... <pattern> $ {PATTERN } </图案>` (12认同)