1. 程式人生 > 實用技巧 >log4net無法寫日誌解決方案

log4net無法寫日誌解決方案

log4net不輸出日誌檔案主要有以下幾個原因:

1、 沒有在AssemblyInfo檔案中新增下面的程式碼:

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch  = true)]

2、執行程式目錄下沒有log4net.config配置檔案。

解決方法有兩種:

  1. 手動將log4net.config複製到執行程式
  2. 選擇解決方案中的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"));
}