Slf4j 记录器的模式

Pattern for Slf4j logger

我在 spring 引导默认模式中获取日志。

2017-02-10 15:39:01.111  INFO 24483 --- [ryBean_Worker-1] c.f.dashboard.services.SchedulerService  : Hello World!

我想获取这种格式的日志

2017/02/10 11:24:37,771 [INFO] [http-nio-8080-exec-8] myMethod(myClass.java:38) - Hello World!

我试过使用这个模式

%sn %d{yyyy/MM/dd HH:mm:ss,SSS} %r [%-5p] [%t] %M(%F:%L) - %m%n

但是在日志行中给出了解析错误。

%PARSER_ERROR[sn] 2017/02/10 09:41:25 12018 [INFO ] [schedulerFactoryBean_Worker-1] %PARSER_ERROR[M] - Hello World!

将此添加到您的 application.xml

logging.pattern.console=%d{"yyyy/MM/dd HH:mm:ss,SSS"} [%p] [%t] %M\(%F:%L\) - %msg%n

或在application.yml

logging:
  pattern:
    console: '%d{"yyyy/MM/dd HH:mm:ss,SSS"} [%p] [%t] %M\(%F:%L\) - %msg%n'

对于日期模式,逗号 ',' 字符被解释为参数分隔符,模式 HH:mm:ss,SSS 将被解释为模式 HM:mm:ss 和时区 SSS。如果您希望在日期模式中包含逗号,则只需将模式括在引号之间即可。例如,%date{"HH:mm:ss,SSS"}

对于方法模式,如果您需要将括号字符视为文字,则需要通过在每个括号前加上反斜杠来对其进行转义。否则你会得到解析器错误。

休息是不言自明的。