异常堆栈自带换行,写进结构化日志会被切成多条,查询时断成碎片。
打日志前先把换行转义成字面的反斜杠 n,或整体做一次 JSON 序列化。
用日志框架的结构化字段写异常对象,别自己拼字符串,框架会处理好转义。
// 错误:换行让堆栈散成多行
log.info("err={}", stackTrace);
// 对:交给结构化日志,值会被转义成单行
log.error("order failed, orderId={}", orderId, ex);
// 手工处理时替换换行
String oneLine = stackTrace.replace("\r\n", "\\n").replace("\n", "\\n");
THE END






暂无评论内容