.net - 从调用方获取堆栈跟踪?

标签 .net vb.net error-handling exception-handling

我有一些简单的代码,可将错误/警告/信息消息以及时间,日期等写入文本文件。

我要写入文件的常见事情之一就是堆栈跟踪,就像这样...

New Diagnostics.StackTrace(New Diagnostics.StackFrame(True))

问题是,如果我将代码放在日志文件处理程序中,则会得到堆栈跟踪信息,这可能与事件的实际位置相去不远。

因此,我将其设置为日志文件的参数,但这导致该行代码在整个应用程序中传播了数百或数千次。

如果我可以将该代码放入日志记录代码本身,则将更加简单。这也将使其变得更加可移植-StackTrace仅在Windows上存在。

那么,代码中是否有某种方法可以确定“此对象之外的第一个调用方”,以便我可以修剪调用堆栈以表明这一点?

最佳答案

因此答案是“阅读文档”。 “技巧”是使用StackTrace中的集合并向后浏览各个框架,直到找到一个名字不属于您所在类的名字。

关于.net - 从调用方获取堆栈跟踪?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32190480/

相关文章:

vb.net - 不要使用数组列表!

.net - 如何获取对象的子类?

c# - 当 .NET 线程抛出异常时会发生什么?

sql-server - 检查 HTTP 位置中的空 csv 文件

php - 我在这段代码中使用的是 API V2 还是 V3?

sql-server - 通过严重性<20的链接服务器捕获错误

jquery - 当我使用 .ajax 和 JSONP 时,如何处理失败的 JSON 请求?

.net - Get-Date 转换为字符串 vs ToString()

c# - 如何加载旧版本的 .NET 程序集?

.net - 可移植类库被视为文件程序集引用