Log 4 Net не пишет при публикации - PullRequest
0 голосов
/ 07 июня 2018

Я использую log4net в .Net Core 2.0, при запуске из Visual Studio все отлично записывается, однако, когда я публикую свое приложение (локально).Файл создан, но в файл не записано никаких сообщений.(При запуске в отладке и выпуске).Вот моя конфигурация:

<?xml version="1.0" encoding="utf-8" ?>
  <log4net>
    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
    <lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
    <file value="./logs/ids4" />
    <datePattern value="yyyy-MM-dd.'txt'"/>
    <staticLogFileName value="false"/>
    <appendToFile value="true"/>
    <rollingStyle value="Date"/>
    <maxSizeRollBackups value="100"/>
    <maximumFileSize value="15MB"/>
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date [%thread] %-5level App  %newline %message %newline %newline"/>
    </layout>
  </appender>
  <root>
    <level value="ALL"/>
    <appender-ref ref="RollingLogFileAppender"/>
  </root>
</log4net>

My AppSettings.Json:

{
  "Logging": {
    "IncludeScopes": false,
    "LogLevel": {
      "Default": "Warning"
    }
  }
}

В моем файле запуска я настраиваю ведение журнала следующим образом:

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
    loggerFactory.AddConsole(Configuration.GetSection("Logging"));
    loggerFactory.AddDebug();
    loggerFactory.AddLog4Net();
    //...
}

Это не такпроблема с разрешениями либо потому, что файл все еще создан, он просто пуст.Мое лучшее предположение было бы, это связано с уровнем регистрации?Я полагаю, что публикация в отладке исправит это.

Как мне заставить журналирование работать при публикации?

Примечание Я смотрел на несколько других вопросы по этому поводу, однако их проблема заключается в том, что файл не был скопирован в каталог публикации.Log4Net.Config находится в моем общедоступном каталоге, и это не проблема

1 Ответ

0 голосов
/ 07 июня 2018

Оказывается, мы кратны appsettings.json, а также было appsettings.Development.json,

Я поменял их обоих на использование:

"LogLevel": {
  "Default": "Information",
  "System": "Information",
  "Microsoft": "Information"
}  

и все начало работать.

...