NLog配置后CloudWatch日志多行字符串与对象识别异常求助
解决方案
步骤1:统一换行符格式
修改异常转换逻辑,将字符串中的\r\n替换为\n,避免跨平台换行符导致CloudWatch解析异常:
// Custom serializer for exceptions LogManager.Setup().SetupSerialization(s => s.RegisterObjectTransformation<Exception>(ex => new { Data = ex.ToBetterString().Replace("\r\n", "\n") }) ); // 保留encode=false配置,确保异常属性被识别为JSON对象 jsonLayout.Attributes.Add(new JsonAttribute("exception", "${exception:format=@}", encode: false));
步骤2:验证JSON输出格式
确保最终生成的日志JSON中,Data字段的换行符被正确转义为"\n"(符合JSON规范)。示例输出:
{ "exception": { "Data": "错误信息第一行\n错误堆栈第二行\n详细描述第三行" } }
步骤3:CloudWatch视图适配
如果日志仍未正常换行,在CloudWatch日志控制台的日志详情页面,开启换行显示选项(通常在视图设置面板中),确保控制台解析并渲染换行符。
内容的提问来源于stack exchange,提问作者rbasniak
相关产品推荐
相关产品推荐

