如何在 asp.net 核心中正确格式化堆栈跟踪信息
Posted
技术标签:
【中文标题】如何在 asp.net 核心中正确格式化堆栈跟踪信息【英文标题】:how to properly format stack trace information in asp.net core 【发布时间】:2020-06-17 21:16:45 【问题描述】:我有 asp.net 核心的分层架构,类似于下面的代码。
主函数(API 控制器)调用 GrandParent 方法,控制器函数也有 try-catch 块。例如,GetNumber 函数发生异常。异常将冒泡到控制器。现在,如果我看到堆栈跟踪,我可以看到来自 Controller->Grandparent->Parent->GetNumber 的跟踪。
有没有一种方法可以美化这个堆栈跟踪,它可以告诉我整个调用堆栈以及它们的函数名和原始异常发生的行号,这样我就可以简单地记录格式化的美化信息而不是记录原始堆栈跟踪?
对于这样的问题,Asp.net 核心是否提供了开箱即用的东西?
【问题讨论】:
【参考方案1】:试试类似的东西(我不知道你想如何格式化这些)
StackTrace stackTrace = new StackTrace();
stackTrace.GetFrames().Select(f => $"f.GetMethod() f.GetFileLineNumber()");
【讨论】:
以上是关于如何在 asp.net 核心中正确格式化堆栈跟踪信息的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET - 部署问题 - 通过 Web.Config 启用堆栈跟踪/跟踪侦听器日志以查找内部服务器 500 错误的原因
如何在 asp.net 核心中从返回零计数的主体正确映射数组