2

尝试添加自定义 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 

注意:请参阅Githubspring-config.xml中的配置文件

在控制台中,\n被替换,异常堆栈跟踪在一行中,但用“行分隔符”字符 (\u2028)\n替换为字符串“u2028”。

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

可能是什么问题呢?

4

1 回答 1

2

我已经通过直接输入“行分隔符”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"
于 2018-06-19T14:31:47.757 回答