Log4Net. Ограничить RollingFileAppender для регистрации событий в средстве просмотра событий Windows - PullRequest
0 голосов
/ 05 октября 2019

Мы используем Log4Net версии 2.0.8 для ведения журнала, и он настроен для входа в файлы. RollingFileAppender настроен как appender. Он отлично регистрирует события в файлах, но мы обнаружили, что он также регистрируется в журнале событий Windows. Нам интересно, можно ли как-то отключить ведение журнала в Windows Event log

enter image description here

Ниже приведена конфигурация Log4Net

.net4.7.1 это версия.

<log4net>
  <root>
    <level value="ALL" />
  </root>
  <logger name="zzzzzz
    <level value="ALL" />
    <appender-ref ref="InfoAppender" />
    <appender-ref ref="DebugAppender" />
    <appender-ref ref="WarningAppender" />
    <appender-ref ref="ErrorAppender" />
  </logger>

  <logger name="NServiceBus">
    <level value="INFO" />
    <appender-ref ref="InfoAppender" />
    <appender-ref ref="DebugAppender" />
    <appender-ref ref="WarningAppender" />
    <appender-ref ref="ErrorAppender" />
  </logger>

  <appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
    <encoding value="utf-8" />
    <file value="C:\Logs\Product\\" />
    <appendToFile value="true" />
    <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />

    <rollingStyle value="Composite" />
    <datePattern value="yyyy-MM-dd\\\\'Product.Error.txt'" />
    <maximumFileSize value="5Mb" />
    <maxSizeRollBackups value="-1" />
    <!-- No limit on roll backs -->
    <staticLogFileName value="false" />
    <!-- Creates the folder for the day before logging for that day starts -->

    <layout type="zzzzz.MyOrders.Utilities.Logging.Log4Net.ExtendedPatternLayout, zzzzzz.MyOrders.Utilities.Logging">
      <conversionPattern value="Product.WebApi - %date [%thread] [%correlationId] %-5level - %message%newline" />
    </layout>
    <filter type="log4net.Filter.LevelRangeFilter">
      <levelMin value="ERROR" />
      <acceptOnMatch value="true" />
    </filter>
    <filter type="log4net.Filter.DenyAllFilter" />
  </appender>
</log4net>

Спасибо!

1 Ответ

0 голосов
/ 07 октября 2019

Мы нашли ответ на вопрос и признаем, что вопрос неверный. Итак, у нас есть оболочка для логгеров, инкапсулированная в пакет nuget, которая упаковывает log4net и рукописный «EventLogLogger»

Код клиента в оболочке выглядит так:

    private void WriteLogMessageToLogs(LogMessageType logMessageType, LogMessage logMessage)
    {         
        foreach (var loggingProvider in this.loggingProviders)
        {
            loggingProvider.AddLogEntry(logMessage, logMessageType);
        }
    }

Извините, что беспокою всех посетителейЗа этим не стоит Log4Net.

...