如何在 asp.net 核心中正确格式化堆栈跟踪信息

how to properly format stack trace information in asp.net core

我有 asp.net 核心的分层架构,类似于下面的代码。

主函数(API 控制器)正在调用 GrandParent 方法,控制器函数也有 try-catch 块。例如,GetNumber 函数发生异常。异常将冒泡到控制器。现在,如果我看到堆栈跟踪,我可以看到来自 Controller->Grandparent->Parent->GetNumber 的跟踪。

有没有一种方法可以美化此堆栈跟踪,从而可以告诉我整个调用堆栈以及它们的函数名称和最初发生异常的行号,以便我可以简单地记录格式化的美化信息而不是记录原始堆栈跟踪?

有什么 Asp.net core 可以开箱即用地解决这样的问题吗?

试试类似的东西(我不知道你想要怎样的格式)

StackTrace stackTrace = new StackTrace();
stackTrace.GetFrames().Select(f => $"{f.GetMethod()} {f.GetFileLineNumber()}");