无法从类库中获取Log4net的支持

时间:2018-07-19 16:10:13

标签: c# logging log4net

我有一个类库,该类库执行安装所需的例程。从我研究的所有内容中,我相信我已经正确设置了一切。但是,该例程绝对不会记录任何内容。这是我所拥有的:

  1. 我已经添加了类库项目作为对宿主项目的引用。

  2. 在我的课程库中,我有以下内容:

    private static readonly ILog Log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
    
    public InstallDLL() {
      Log.Error("Where are you goinng?");
    }
    
  3. 在宿主应用程序中,我向AssemblyInfo.cs类添加了以下行:[assembly: log4net.Config.XmlConfigurator(Watch = true)]

  4. 最后,这是我的app.config文件的内容:

    <configuration>
    
      <configSections>
        <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,Log4net"/>
      </configSections>
    
      <log4net>
        <appender name="TestAppender" type="log4net.Appender.RollingFileAppender" >
          <file value=".\Log Directory\MyTestAppender.log" />
          <encoding value="utf-8" />
          <appendToFile value="true" />
          <rollingStyle value="Date" />
          <rollingStyle value="Size" />
          <maxSizeRollBackups value="5" />
          <maximumFileSize value="2MB" />
          <staticLogFileName value="true" />
          <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date [%thread] %-5level %logger [%M %C] - %message%newline" />
          </layout>
        </appender>
        <root>
          <level value="ALL" />
          <!-- If the following line is not included the log file will not be created even if log4net is configured with this file. -->
          <appender-ref ref="TestAppender" />
        </root>
      </log4net>
        <startup> 
            <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
        </startup>
    </configuration>
    

我必须丢失一些东西,但是呢?请记住,从主机应用程序进行日志记录可以正常工作...

****编辑******************************************** **************************

我想我可能知道这里发生了什么。该项目生成的.dll文件在宿主项目运行之前运行,因为它是安装脚本的一部分。我认为主机项目必须首先运行才能初始化log4net配置。当我从主机应用程序而不是安装程序包中调用.dll文件中的方法时,log4net日志记录工作正常。有谁知道这是否是根本原因,如何解决这个问题?

1 个答案:

答案 0 :(得分:-1)

    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />, Can you check your Target Framework in Assembly properties? 

我只是将其与配置文件进行比较,我有这个<log4net debug="true">。您能添加一下吗?