logback显示带行号的日志

Awa*_*ing 18 java logging log4j logback

我想写日志,如:

2014-04-17 11:00:16.408 [http-apr-9090-exec-4] DEBUG package.method(line) - log.
Run Code Online (Sandbox Code Playgroud)

所以我在模式中配置logback.xml,配置如下:

%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36}.%M(%line) - %msg%n
Run Code Online (Sandbox Code Playgroud)

除了行号,每件事都显示确定,如果我添加像

%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36}.%M %line - %msg%n
Run Code Online (Sandbox Code Playgroud)

一切都行.所以我的配置肯定有问题.
谁能帮助我?谢谢.我希望显示我想要的内容,方法名称和行号之间没有空格.

Sot*_*lis 39

的logback手动状态

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

[...]

如果需要将括号字符视为文字,则需要通过在每个括号前加一个反斜杠来对其进行转义.如, \(%d{HH:mm:ss.SSS} [%thread]\).

你需要用一个转义括号\.

%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36}.%M\(%line\) - %msg%n
Run Code Online (Sandbox Code Playgroud)


Rüd*_*ulz 6

如果您希望获得可以单击源代码链接的日志消息(例如在 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>
Run Code Online (Sandbox Code Playgroud)


Der*_*rek 5

对于任何偶然发现此页面寻找如何在 application.properties 文件中配置它的人,我需要注意的是,我通过添加两个反斜杠成功转义了括号。

%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36}.%M \\(%line\\) - %msg%n
Run Code Online (Sandbox Code Playgroud)