1
這是我的情況:我有一個庫項目,目的是覆蓋log4net和集中日誌與自定義appender。我有這些類:我的自定義日誌管理器問題
myCustomLogManager
CustomLog
ICustomLog
在myCustomLogManager,我得到這個:
public class myCustomLogManager
{
public static ICustomLog GetLogger(System.Type t)
{
return new CustomLog(t);
}
// Other stuff
}
我的自定義日誌:
class CustomLog : ICustomLog
{
private static ILog log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
public CustomLog(System.Type t)
{
log = LogManager.GetLogger(t);
}
public void Debug(string message, Exception e)
{
log.Debug(message, e);
}
}
進入我的控制檯應用程序項目,在每個班級,我宣佈:
private static readonly ICustomLog logger = myCustomLogManager.GetLogger(typeof(myClass));
當我登錄myClass,沒問題。但是,如果我使用另一個類,我也登錄(讓我們說myOtherClass),我將來登錄myClass的記錄器名稱將具有值「myOtherClass」。爲了說明問題,這裏是輸出的一個例子:
- [信息] myProject.myClass:「從myClass的日誌」
- [信息] myProject.myOtherClass:「來自myOtherClass的日誌!」
- [信息] myProject.myOtherClass:「myClass !!的第二個日誌」
這是非常難以解釋,我希望我足夠清楚的,但事實是默認的記錄器,在myOtherClass類做的東西后myProject.myOtherClass,不回來myProject.myClass當我登錄在myClass類中。
我該如何解決這個問題?
感謝您的閱讀和你的幫助:-)
嗨Stefan, 非常感謝它的工作。 雖然這很漂亮,但是當我在調試時,我正在監視存儲庫log4net中的記錄器,並且還有我所有的記錄器。也許這就是爲什麼我沒有想到這個靜態日誌。 再次感謝! – Xavier 2011-05-26 11:09:55