C# Log4net未正确加载配置

C# Log4net未正确加载配置,c#,asp.net-mvc,log4net,log4net-configuration,C#,Asp.net Mvc,Log4net,Log4net Configuration,我有一个单独的类库,其中包含一个静态类,我在其中包装了Log4Net的使用。 类似这样的东西(见下文) 我很难记录任何东西。当我进入代码时,我会看到一些对象上的消息,例如ConfigurationMessage: {log4net:错误XmlConfigurator:找不到配置节 应用程序的.config文件中的“log4net”。请检查.config文件 对于和元素。配置 节应类似:} 这个类的assemblyinfo.cs,我添加了这个 [assembly: log4net.Config.X

我有一个单独的类库,其中包含一个静态类,我在其中包装了Log4Net的使用。 类似这样的东西(见下文)

我很难记录任何东西。当我进入代码时,我会看到一些对象上的消息,例如ConfigurationMessage:

{log4net:错误XmlConfigurator:找不到配置节 应用程序的.config文件中的“log4net”。请检查.config文件 对于和元素。配置 节应类似:}

这个类的assemblyinfo.cs,我添加了这个

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

显然,它找不到这个文件?程序集正在从ASP.Net MVC web应用程序中使用,编译时,log4net.config被复制到/bin文件夹中,因此它在那里,但找不到它?

程序集属性配置不能很好地与web应用程序配合使用,尤其是当程序集属性不在主程序集中时

改为使用
XmlConfigurator.Configure的重载,该重载引用文件本身:

// or wherever your file is
var fileInfo = new FileInfo(AppDomain.CurrentDomain.BaseDirectory + "log4net.config"); 
if (fileInfo.Exists)
    log4net.Config.XmlConfigurator.Configure(fileInfo);
else 
    throw new InvalidOperationException("No log config file found");

在web应用程序中,它在根目录中查找,而不是在bin中。
// or wherever your file is
var fileInfo = new FileInfo(AppDomain.CurrentDomain.BaseDirectory + "log4net.config"); 
if (fileInfo.Exists)
    log4net.Config.XmlConfigurator.Configure(fileInfo);
else 
    throw new InvalidOperationException("No log config file found");