Slf4j记录器的模式

时间:2017-02-10 10:28:11

标签: java spring logging spring-boot slf4j

我正在使用spring boots默认模式获取日志。

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!

1 个答案:

答案 0 :(得分:3)

在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”}

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

休息是不言自明的。