使用单独的Project记录Log4Net时的Web.config配置

时间:2014-05-11 02:07:02

标签: asp.net log4net

我有一个包含2个项目的Visual Studio解决方案:

  1. 网络应用程序
  2. 用于记录的图书馆项目
  3. 我的Web应用程序项目没有Log4Net参考。 Logging项目是一个引用Log4Net dll的项目,它有一个Manager类,我有所有的日志记录方法。

    现在,我想知道我在Web应用程序WEb.Config文件中需要做什么,我在互联网上看到我必须添加一个部分:

     <section name="log4net" 
          type="log4net.Config.Log4NetConfigurationSectionHandler, 
                log4net"/>
    

    但我担心的是我的网络项目没有Log4Net dll参考。如果我没有将Log4Net dll添加到我的网络项目中,我可以这样做吗?

2 个答案:

答案 0 :(得分:1)

是的,您可以在不引用Web应用程序项目中的section的情况下为log4net添加log4net.dll元素。

可以肯定的是,我在Visual Studio 2013中使用针对.NET 4.0的临时Web应用程序项目(WebApplication1)和类库(ClassLibrary1)进行了双重检查.ClassLibrary1引用了log4net.dll,但WebApplication1却没有;它只是引用了ClassLibrary1并且有一个log4net section元素&amp; log4net中的相关Web.config元素:通过log4net登录文本文件的工作非常精彩。

答案 1 :(得分:0)

您似乎忘记了配置log4net。最佳做法是在assably.cs中添加configure属性:

// Configure log4net using the .config file
[assembly: log4net.Config.XmlConfigurator(Watch=true)]
// This will cause log4net to look for a configuration file
// called TestApp.exe.config in the application base
// directory (i.e. the directory containing TestApp.exe)
// The config file will be watched for changes.

// Configure log4net using the .log4net file
[assembly: log4net.Config.XmlConfigurator(ConfigFileExtension="log4net",Watch=true)]
// This will cause log4net to look for a configuration file
// called TestApp.exe.log4net in the application base
// directory (i.e. the directory containing TestApp.ex

您可以在log4net dll中添加该属性,不需要在您的Web项目中引用log4net。