我有一些简单的代码,用于将错误/警告/信息消息写入文本文件,以及时间,日期等。
我要写入文件的常见问题之一是堆栈跟踪,就像这样......
New Diagnostics.StackTrace(New Diagnostics.StackFrame(True))
问题在于,如果我将该代码放在日志文件处理程序中,我会将堆栈跟踪到达该点,这可能是远离事件实际位置的几个调用。
因此,我将此作为日志文件的参数,但这导致该行代码在我的应用程序中传播,数百或数千次。
如果我可以将代码放入日志代码本身,那会简单得多。这也使它更具可移植性 - StackTrace只存在于Windows上。
那么代码是否有某种方法可以确定“此对象外的第一个调用者”,以便我可以修改调用堆栈以显示它?
答案 0 :(得分:0)
所以答案是“阅读文档”。 “技巧”是使用StackTrace中的集合并在框架中向后工作,直到找到一个名字不是你所在类的名字。