我正在使用log4net,並且想簡化使用。現在,在每節課我使用日誌記錄(這幾乎是所有的所有類),我必須寫:通過繼承類中的聲明獲取當前類
public class MyClass
{
public static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
try
{
// do something
}
catch(Exception ex)
{
log.Error("Problem doing something", ex);
}
}
我真的很想做的就是把第一個聲明在另一個類,我可以只要繼承我需要記錄:
public class MyClass : Logging
{
try
{
// do something
}
catch(Exception ex)
{
log.Error("Problem doing something", ex);
}
}
public class Logging
{
public static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
}
但是,如果我這樣做,問題是
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType
...最終拿起類名登錄,這是沒有良好的日誌。我怎樣才能獲取繼承日誌類的類的類名?
謝謝!
我想你不應該使用繼承,但爲您的問題組成。 – Rafa
@Anders:使用'和'靜態method'而不是靜態class' ....爲'@ Yevgeniy.Chernobrivets'已經回答了.. – Moumit