log4net не пишет в два RollingFileAppenders - PullRequest
0 голосов
/ 27 декабря 2018

Это мой конфиг приложения

   <log4net>
    <root>
      <level value="ALL" />
      <appender-ref ref="RollingFileAppender" />
    </root>
    <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
      <file type='log4net.Util.PatternString' value='%property{LogPath}\%property{LogFileName}' />
      <appendToFile value="true" />
      <rollingStyle value="Size" />
      <maxSizeRollBackups value="5" />
      <maximumFileSize value="10MB" />
      <staticLogFileName value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date %level [%thread] - %message%newline" />
      </layout>
    </appender>   
    <appender name="PerformanceLogger" type="log4net.Appender.RollingFileAppender">
      <file type='log4net.Util.PatternString' value='%property{LogPath}\%property{PerformanceLogFileName}' />
      <appendToFile value="true" />
      <rollingStyle value="Size" />
      <maxSizeRollBackups value="1" />
      <maximumFileSize value="2MB" />
      <staticLogFileName value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date %level [%thread] - %message%newline" />
      </layout>
    </appender>
    <logger Name="PerformanceLogger" additivity="false">
      <level value="ALL"/>
      <appender-ref ref="PerformanceLogger"/>
    </logger>
  </log4net>

Когда я пытаюсь получить регистраторы и написать в него.Он просто создает файл для PerformanceLogger, но не записывает в него.

log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
performaceLog = LogManager.GetLogger("PerformanceLogger");

, но мой log.Info("test"); работает нормально и создает файл, а также записывает в него.

Любые советы по этому вопросупожалуйста?

1 Ответ

0 голосов
/ 27 декабря 2018

Определение регистратора для PerformanceLogger неверно - вы использовали Name вместо name для определения имени регистратора.Измените это на следующее, и оно должно работать правильно:

...
<logger name="PerformanceLogger" additivity="false">
  <level value="ALL"/>
  <appender-ref ref="PerformanceLogger"/>
</logger>
...
...