log4net無法寫日誌解決方案
阿新 • • 發佈:2020-12-15
log4net不輸出日誌檔案主要有以下幾個原因:
1、 沒有在AssemblyInfo檔案中新增下面的程式碼:
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]
2、執行程式目錄下沒有log4net.config配置檔案。
解決方法有兩種:
- 手動將log4net.config複製到執行程式
- 選擇解決方案中的log4net.config,在屬性–>複製到輸出目錄,選擇始終複製。
3、 log4net的net framework版本與執行程式的版本不一致。
如果在除錯中出現以下提示:
引發的異常:“log4net.Appender.FileAppender.LockingStream.LockStateException”(位於 log4net.dll 中) 引發的異常:“System.InvalidOperationException”(位於 System.dll 中) 引發的異常:“System.IO.PathTooLongException”(位於 mscorlib.dll 中) 引發的異常:“System.IO.PathTooLongException”(位於 mscorlib.dll 中) 引發的異常:“log4net.Appender.FileAppender.LockingStream.LockStateException”(位於 log4net.dll 中)
就很有可能是這個原因。
解決方案:
更改log4net版本或者執行程式的net framework版本。
4、 在debug模式下無法寫入日誌,在release下正常。
需要在App.xaml.cs檔案中具體再次指定配置檔案所在位置,例如:
protected void Application_Start(object sender, EventArgs e)
{
log4net.Config.XmlConfigurator.Configure(AppDomain.CurrentDomain.BaseDirectory + @"\log4net.config"));
}