2017-02-10 70 views
0

我正在获取日志中的弹簧靴默认模式。Slf4j记录器的模式

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! 
+0

我认为该模式是正确的,并且代码中可能存在一些其他问题。请参考下面的URL。 http://log4jtester.com/?p=%25sn+%25d%7Byyyy%2FMM%2Fdd+HH%3Amm%3Ass%2CSSS%7D+%25r+%5B%25-5p%5D+%5B%25t%5D+%25M( %25F%3A%25L)+ - +%25m%25n – Jayesh

回答

1

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

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

休息是自我解释。

+0

尝试过。得到没有任何换行符的日志。 –

+0

2017/02/10 16:48:44,287 [INFO] [main] logStarting \(StartupInfoLogger.java:48\2017/02/10 16:48:44,295 [DEBUG] [main] logStarting \(StartupInfoLogger.java:51 \ 2017/02/10 16:48:44,295 [INFO] [main] logStartupProfileInfo \(SpringApplication.java:637\2017/02/10 16:48:48,209 [INFO] [main] log \(DirectJDKLog.java:179 \ 2017/02/10 16:48:48,211 [INFO] [main] log \(DirectJDKLog.java:179\2017/02/10 –

+0

我用它在yml文件中作为。 pattern: console:'%d { “yyyy/MM/dd HH:mm:ss,SSS”} [%p] [%t]%M \\(%F:%L \\) - %msg%n' –