我目前正在使用内置的TraceListener开发应用程序日志库。这个库将被用在许多项目中,并且应该提供一个简单的接口,我只需要关心将要写入日志文件的内容,而不是如何操作。如何确定调用方法和类名?
通过使用反射命名空间,我可以找出哪个应用程序当前称为日志功能(检索执行程序集名称),但我也想要调用日志功能的函数和类的名称。
比方说,我有:
public static void LogInfo(string vLogText) {
Trace.WriteLine(
MethodInfo.GetCurrentMethod().Name
+ this.GetType().ToString() + vLogText);
}
当我从另一个项目调用(类:识别TestClass,方法:TestMethod的)
Tracer.LogInfo("log this!")
我希望在日志中看到:
TestClass, TestMethod, log this!
但是,我得到了
TracerClass, LogInfo, log this!
如何获得父级方法和类名?
如果您使用最新的C#和VS 2012,[这可能会帮助您很大](http://msdn.microsoft.com/zh-cn/library/hh534540.aspx)。 – 2013-02-13 08:34:25
@ Trustme -I'maDoctor This太棒了!没有意识到这样的事情。你可以请这个答案而不是评论,所以我可以投票并将其标记为已关闭?非常感谢你。 – Neurodefekt 2013-02-13 08:38:30
@Neurodefekt没问题,它完成了。很高兴我能帮上忙。 :) – 2013-02-13 08:41:54