将行分隔符(\ u2028)添加到Logback模式

时间:2018-06-19 13:31:08

标签: logback cloudfoundry pivotal-cloud-foundry spring-logback

试图添加自定义的Logback模式,以便将异常堆栈跟踪记录到单行中(新行字符用unicode换行符\ u2028替换),

%date{"yyyy-MM-dd'T'HH:mm:ss.SSSZ", UTC} %5p %t %c{5}:%L [log_framework=logback;app_name=${APP_NAME};app_version=${APP_VERSION};instance_id=${CF_INSTANCE_INDEX}] %m MULTIEXCEPTION %replace(%xException){'\n','\u2028'}%nopex%n 

注意:请参见Github中的spring-config.xml配置文件

在控制台中,\n被替换,Exception stacktrace在一行中,但是\n被替换为字符串“ u2028”,而不是用“行分隔符”字符(\ u2028)。

如果我尝试直接记录此“行分隔符”字符(通过Logback,作为日志消息)-它将正确打印在控制台中。

可能是什么问题?

1 个答案:

答案 0 :(得分:1)

我已经通过直接输入“行分隔符” Unicode字符()来做到这一点:

%date{"yyyy-MM-dd'T'HH:mm:ss.SSSZ", UTC} %5p %t %c{5}:%L [log_framework=logback;app_name=${APP_NAME};app_version=${APP_VERSION};instance_id=${CF_INSTANCE_INDEX}] %m MULTIEXCEPTION %replace(%xException){'\n','
'}%nopex%n 

注意:您还可以通过添加下一个应用程序属性,在Spring Boot应用程序中设法使“异常”堆栈跟踪成为“单行”:

logging.exception-conversion-word: "%replace(%xException){'\\n','\u2028'}%nopex"