【发布时间】:2013-01-28 18:03:00
【问题描述】:
我目前正在使用内置的 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!
如何获取父方法和类名?
【问题讨论】:
-
This might help you immensely 如果您使用的是最新的 C# 和 VS 2012。
-
@Trustme-I'maDoctor 这太棒了!不知道有这样的事情。您能否将其作为答案而不是评论,以便我投票并将其标记为已关闭?非常感谢。
-
@Neurodefekt 没问题,已经完成了。很高兴我能帮助你。 :)
标签: c# .net logging reflection .net-assembly