Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java logback显示带有行号的日志_Java_Logging_Log4j_Logback - Fatal编程技术网

Java logback显示带有行号的日志

Java logback显示带有行号的日志,java,logging,log4j,logback,Java,Logging,Log4j,Logback,我想像这样写日志: 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 除了行号之外,所有的东西都显示ok,如果我添加一组 %d{yyyy-MM-dd HH:mm:ss.SS

我想像这样写日志:

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
除了行号之外,所有的东西都显示ok,如果我添加一组

%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36}.%M %line - %msg%n
那一切都好了。所以我的配置肯定有问题。
有人能帮我吗?谢谢我希望显示我想要的内容,并且方法名称和行号之间没有空格。

状态

在PatternLayout中,括号可用于分组转换 模式因此,“(”和“)”具有特殊的含义和含义 如果打算用作文本,则需要转义。特殊字符 下面将进一步解释括号的性质

[……]

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

您需要使用
\
对括号进行转义

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

对于无意中进入本页并在application.properties文件中查找如何配置的任何人来说,我添加了两个反斜杠,成功地避开了括号

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

对于控制台日志记录,我使用:

<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>
%黑色(%date{yyyy-MM-dd HH:MM:ss.SSS”,“Europe/London})%highlight(%-5level)[%green(%X{sessionId})]%黄色(%logger{36}@%method\(%line\)-%msg%n%throwable
和用于记录到文件:

 <pattern>[%date{"yyyy-MM-dd HH:mm:ss,SSSXXX", "Europe/London"}] [${HOSTNAME}] [%thread] %level %logger{36}@%method:%line - %msg%n</pattern>
[%date{“yyyy-MM-dd HH:MM:ss,SSSXXX”,“Europe/London”}][${HOSTNAME}][%thread]%级别%logger{36}@%方法:%line-%msg%n

如果您希望有日志消息,您可以在其中单击指向源代码的链接,例如在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>

%d{dd MM yyyy HH:MM:ss.SSS}%高亮显示(%-5level)%洋红([%thread])%yellow(%logger{40}.%M\(%class{0}.java:%line\)-%msg%可丢弃%n

添加的反斜杠不是针对括号,而是针对第一个反斜杠。我无法找到为什么必须使用两个反斜杠。我同意这是应该发生的事情。也许其中一个框架需要额外的反斜杠。