我目前正在使用內置的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