Проблемы с использованием Log4Net.AspNetCore с ILoggingBuilder - PullRequest
0 голосов
/ 29 марта 2019

Встроенные поставщики ASP.NET Core 2.2, по-видимому, не включают поставщика файлов.Таким образом, я решил использовать log4net на данный момент.Однако, когда я пытаюсь использовать класс ILoggingBuilder для создания своей службы ведения журналов с помощью Microsoft.Extensions.Logging, это не похоже на то, что Log4Net может найти свой файл конфигурации.Вот сводка моего кода и того, что я уже сделал:

Startup.cs

public class Startup
{
    private readonly ILogger _logger;

    public Startup(IConfiguration configuration, ILogger<Startup> logger)
    {
        Configuration = configuration;
        _logger = logger;

        _logger.LogInformation("Starting Container . . .");
    }

    public IConfiguration Configuration { get; }

    public void ConfigureServices(IServiceCollection services)
    {
        _logger.LogInformation("Configuring DI Services . . .");

        services.AddLogging(logging =>
        {
            logging.AddConsole();
            logging.AddLog4Net();
        });

        services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
    }

    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        _logger.LogInformation("Configuring Application . . .");

        app.UseHttpsRedirection();
        app.UseStaticFiles();
        app.UseCookiePolicy();

        app.UseMvc(routes =>
        {
            routes.MapRoute(
                name: "default",
                template: "{controller=Login}/{action=Index}/");
        });

        _logger.LogInformation("Web Application Startup Completed . . .");
    }
}

log4net.config

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <log4net>
    <appender name="DebugAppender" type="log4net.Appender.DebugAppender" >
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
      </layout>
    </appender>
    <appender name="RollingFile" type="log4net.Appender.FileAppender">
      <file value="WebSiteDI.log" />
      <maximumFileSize value="500KB" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%-5p %d{hh:mm:ss} %message%newline" />
      </layout>
    </appender>
    <root>
      <level value="ALL" />
      <appender-ref ref="DebugAppender" />
      <appender-ref ref="RollingFile" />
    </root>
  </log4net>
</configuration>

Я следовал инструкциямв соответствии со страницей Log4Net.AspCoreNet Github ( Ссылка ).Однако эта реализация, похоже, не сможет найти файл конфигурации, пока я не включу в свой запуск следующее:

var logRepository = LogManager.GetRepository(Assembly.GetEntryAssembly());
XmlConfigurator.Configure(logRepository, new FileInfo("log4net.config"));

Я знаю, что есть пакет параметров, который позволит мне выполнять переопределения и дополнительную настройку вappconfig.json (и позволит мне использовать возможности переключения среды хост-контейнера), но это не упомянуто как обязательное и все еще зависит от файла log4net.config, который будет найден.

Может ли страница Githubустареть или я что-то упустил?

...