我想写日志,如:
2014-04-17 11:00:16.408 [http-apr-9090-exec-4] DEBUG package.method(line) - log.
所以我在模式中配置logback.xml,配置如:
%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36}.%M(%line) - %msg%n
除了行号之外,每件事都显示,如果我添加像
这样的设置%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36}.%M %line - %msg%n
然后一切正常。所以我的配置一定有问题。
谁能帮助我?谢谢。我希望显示我想要的内容,方法名称和行号之间没有空格。
答案 0 :(得分:36)
在PatternLayout中,括号可用于分组转换 图案。 接下来是'('和')'具有特殊意义和 如果打算用作文字,则需要进行转义。特殊 括号的性质将在下面进一步说明。
[...]
如果您需要将括号字符视为文字,则需要 使用反斜杠在每个括号前面进行转义。如,
\(%d{HH:mm:ss.SSS} [%thread]\)
。
您需要使用\
转义括号。
%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36}.%M\(%line\) - %msg%n
答案 1 :(得分:1)
为任何偶然发现此页面以寻找如何在application.properties文件中进行配置的用户提供的注释,我成功地通过添加两个反斜杠来转义了括号。
%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36}.%M \\(%line\\) - %msg%n
答案 2 :(得分:0)
对于控制台日志记录,我使用:
<Pattern>%black(%date{"yyyy-MM-dd HH:mm:ss.SSS", "Europe/London"}) %highlight(%-5level) [%green(%X{sessionId})] %yellow(%logger{36}@%method\(%line\)) - %msg%n%throwable</Pattern>
并记录到文件:
<pattern>[%date{"yyyy-MM-dd HH:mm:ss,SSSXXX", "Europe/London"}] [${HOSTNAME}] [%thread] %level %logger{36}@%method:%line - %msg%n</pattern>
答案 3 :(得分:0)
如果要获取日志消息,可以在其中单击指向源代码的链接,例如在IntelliJ中,使用以下模式在IDE内部进行控制台日志记录:
<pattern>
%d{dd-MM-yyyy HH:mm:ss.SSS} %highlight(%-5level) %magenta([%thread]) %yellow(%logger{40}.%M\(%class{0}.java:%line\)) - %msg%throwable%n
</pattern>