Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 现在,当我将包装器类移动到它自己的类项目中时,Log4Net.config没有被加载_C#_.net_Class_Log4net_Assemblyinfo - Fatal编程技术网

C# 现在,当我将包装器类移动到它自己的类项目中时,Log4Net.config没有被加载

C# 现在,当我将包装器类移动到它自己的类项目中时,Log4Net.config没有被加载,c#,.net,class,log4net,assemblyinfo,C#,.net,Class,Log4net,Assemblyinfo,有人能帮忙吗,我已经成功地使用了log4net,我的webproject中基本上有一个静态类包装器,我通过在assemblyinfo.cs中添加这个来从名为log4net.config的外部文件加载配置 // log4net config file [assembly: log4net.Config.XmlConfigurator(ConfigFile = "Log4Net.config", Watch = true)] 一切都好!,现在我决定将我的静态类移动到它自己的类项目中

有人能帮忙吗,我已经成功地使用了log4net,我的webproject中基本上有一个静态类包装器,我通过在assemblyinfo.cs中添加这个来从名为log4net.config的外部文件加载配置

    // log4net config file
    [assembly: log4net.Config.XmlConfigurator(ConfigFile = "Log4Net.config", Watch = true)]
一切都好!,现在我决定将我的静态类移动到它自己的类项目中,这样我就可以与其他项目共享我的静态类包装器

log4net.config仍然在webproject中,但当然它现在没有被加载,我可以这么说,因为在我的静态类中,我现在正在做它自己的项目

          return LogManager.GetLogger("InfoLogger").IsInfoEnabled;
IsInfo Enabled返回false,没有记录任何内容,也没有读取.config文件

记住Log4net包装器静态类在它自己的类项目中,但是.config文件在web项目ihave中。。我之所以需要它,是因为.config可以在一个项目一个项目的基础上进行更改,但包装器通常不会

当然,我想我会创建一个抽象类,然后在我的webproject中继承并重写任何需要的东西。。。但当然,您不能继承静态类,甚至不能进行抽象


我肯定有人遇到过这个,有什么想法吗。。您需要将XmlConfigurator assembly属性放在封装log4net的类库中。您可以将log4net.config文件保存在web应用程序的根目录中


XmlConfigurator程序集属性在首次初始化log4net时读取。Log4net扫描调用程序集以查找属性。

为什么不去掉包装器类,在每个项目中放置单行配置,并直接使用Log4net?当然,您有一个依赖项,但它主要在ILog接口上。使用依赖项注入可以避免这种情况,但静态类包装器仍然会妨碍您。