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"));
}

原文地址:https://www.cnblogs.com/MarcLiu/p/14137252.html