Как настроить регистратор FileAppender из log4net для библиотеки классов .NET Standard 2.0?

Как настроить регистратор File Appender из log4net для библиотеки классов с использованием .NET Standard 2.0? У меня нет AssemblyInfo.cs. Я думаю, что у меня есть фундаментальное недоразумение, которое приводит к моему замешательству с этим, так что это может быть простой ответ, но я только что запустил библиотеку классов, которую хочу сделать доступной для как можно большего количества проектов в наших решениях и иметь внутреннюю регистрацию из начало.

Любые предложения/помощь очень ценятся.


person Jake Smith    schedule 24.01.2018    source источник


Ответы (2)


В файле AssemblyInfo.cs нет ничего особенного. Атрибут для настройки log4net можно поставить в любой файл сборки.

При этом я бы рекомендовал не использовать log4net напрямую, а вместо этого использовать ILogger из пакета NuGet Microsoft.Extensions.Logging.Abstractions. Это позволяет потребителю вашей библиотеки использовать любую систему регистрации, которую он хочет, вместо того, чтобы привязываться только к log4net.

person Scott Chamberlain    schedule 24.01.2018
comment
Это отличное предложение. Я посмотрю на это. Благодарю вас! - person Jake Smith; 25.01.2018
comment
Любые ссылки, которые у вас есть, чтобы показать, как использовать эту абстракцию? У меня проблемы с поиском чего-либо... - person Jake Smith; 25.01.2018
comment
@JakeSmith Эта документация находится под Раздел ASP.Net, но он по-прежнему работает точно так же в сетевых стандартных библиотеках или в исполняемых файлах. - person Scott Chamberlain; 25.01.2018

Не уверен, что понял, что вам нужно/хочу, но это идея того, как должен выглядеть файл конфигурации.

   <log4net>
    <root>
      <level value="INFO" />
      <appender-ref ref="LogFileAppender" />
    </root>
    <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender">
      <param name="File" value="test.txt" />
      <param name="AppendToFile" value="true" />
      <rollingStyle value="Size" />
      <maxSizeRollBackups value="10" />
      <maximumFileSize value="5MB" />
      <staticLogFileName value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="%date [%thread] %-5level %logger [%M %C] - %message%newline" />
      </layout>
  </log4net>

Если я не ошибаюсь, вам не нужно ничего добавлять в свою сборку (если у вас ее нет), но вам нужно добавить что-то вроде этого при запуске

        log4net.Config.XmlConfigurator.Configure();

(в моем случае webapi, поэтому я добавляю его в свой startup.cs)

Надеюсь, это поможет!

person Ali_Nass    schedule 24.01.2018
comment
У него есть библиотека. Нет запуска или основного, чтобы поместить его в - person Scott Chamberlain; 25.01.2018