我有一些简单的代码,可将错误/警告/信息消息以及时间,日期等写入文本文件。
我要写入文件的常见事情之一就是堆栈跟踪,就像这样...
New Diagnostics.StackTrace(New Diagnostics.StackFrame(True))
问题是,如果我将代码放在日志文件处理程序中,则会得到堆栈跟踪信息,这可能与事件的实际位置相去不远。
因此,我将其设置为日志文件的参数,但这导致该行代码在整个应用程序中传播了数百或数千次。
如果我可以将该代码放入日志记录代码本身,则将更加简单。这也将使其变得更加可移植-StackTrace仅在Windows上存在。
那么,代码中是否有某种方法可以确定“此对象之外的第一个调用方”,以便我可以修剪调用堆栈以表明这一点?
最佳答案
因此答案是“阅读文档”。 “技巧”是使用StackTrace中的集合并向后浏览各个框架,直到找到一个名字不属于您所在类的名字。
关于.net - 从调用方获取堆栈跟踪?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32190480/