C# RollingAppander始终为null,而不是返回值

C# RollingAppander始终为null,而不是返回值,c#,model-view-controller,log4net,C#,Model View Controller,Log4net,我在Web APi中的Web配置如下 <appender name="MyLogger" type="log4net.Appender.RollingFileAppender"> <file value="RenameFileInCode.txt" /> <appendToFile value="true" /> <maximumFileSize value="10MB" /> <maxSizeRollBackups val

我在Web APi中的Web配置如下

 <appender name="MyLogger" type="log4net.Appender.RollingFileAppender">
  <file value="RenameFileInCode.txt" />
  <appendToFile value="true" />
  <maximumFileSize value="10MB" />
  <maxSizeRollBackups value="5" />
  <!-- rollingStyle value="Size" /-->
  <rollingStyle value="Date" />
  <threshold value="DEBUG" />
  <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%date %-5level %logger %newline%message%newline%exception%newline" />
  </layout>
  <filter type="log4net.Filter.LevelRangeFilter">
    <levelMin value="DEBUG" />
    <levelMax value="ERROR" />
  </filter>
</appender>
在这个方法中,我无法获取RollingFileAppander值,因为它总是空的

log4net.Appender.RollingFileAppender rfa =
          (log4net.Appender.RollingFileAppender)root.Root.GetAppender("RollingLogFileAppender");

任何人都会非常感激这个解决方案

我认为您必须给出记录器的名称:

     (log4net.Appender.RollingFileAppender)root.Root.GetAppender("MyLogger");

最可能的原因是您没有加载log4net配置。如果您有,您将需要调试它:在
root.root.GetAppender(“MyLogger”)
调用上设置一个断点,查看记录器,看看它是否a)加载了appender,b)是否具有您期望的名称。哦,通常的方法是
LogManager.GetRepository().GetAppenders().OfType().FirstOrDefault()
     (log4net.Appender.RollingFileAppender)root.Root.GetAppender("MyLogger");