我的所有log4net appender都可以在我的web應用程序中正常工作並正常工作,但是當我啓動一個不同的線程來啓動數據同步過程時,該獨立線程中的所有日誌語句都會進入空白的深淵;沒有我的appender被解僱。任何人都知道爲什麼會這樣?爲什麼Log4Net不在單獨的線程中記錄日誌語句?
private static readonly ILog Log = LogManager.GetLogger("mylog");
public static string SomeValue
{
get
{
Log.Debug("This WILL be appended to the log");
var thread = new Thread(SyncData);
thread.Start();
return "the value";
}
}
private static void SyncData()
{
Log.Debug("This will NOT be appended to log");
var newLog = LogManager.GetLogger("mylog");
newLog.Debug("This will also NOT be appended to the log");
}
這有助於指出解決問題的方法。我的一個appender依賴於'HttpContext.Current',事後認爲完美的是,HttpContext.Current在離開web應用程序線程的新線程中爲NULL。 –