Configurando Log4Net para Registro de Logs em .NET Core

Para implementar registro de logs em uma aplicação .NET Core com Log4Net, siga estas etapas essenciais.

Crie um projeto .NET Core padrão e adicione os pacotes NuGet log4net e Microsoft.Extensions.Logging.Log4Net.AspNetCore via gerenciador de pacotes.

Configure o arquivo log4net.config no diretório do projeto com estrutura específica para difreentes níveis de log. Exemplo:

<?xml version="1.0" encoding="utf-8" ?>
<log4net>
  <root>
    <level value="All" />
    <appender-ref ref="CriticalAppender" />
    <appender-ref ref="WarningAppender" />
    <appender-ref ref="StandardAppender" />
  </root>

  <appender name="CriticalAppender" type="log4net.Appender.RollingFileAppender">
    <file value="Logs/Critical/" />
    <appendToFile value="true" />
    <rollingStyle value="Date" />
    <datePattern value="yyyy-MM-dd_critical.log" />
    <maxSizeRollBackups value="50" />
    <staticLogFileName value="false" />
    <encoding value="utf-8" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date [%thread] %level - %message%newline" />
    </layout>
    <filter type="log4net.Filter.LevelRangeFilter">
      <levelMin value="ERROR" />
      <levelMax value="FATAL" />
    </filter>
  </appender>

  <appender name="WarningAppender" type="log4net.Appender.RollingFileAppender">
    <file value="Logs/Warnings/" />
    <appendToFile value="true" />
    <rollingStyle value="Date" />
    <datePattern value="yyyy-MM-dd_warning.log" />
    <maxSizeRollBackups value="50" />
    <staticLogFileName value="false" />
    <encoding value="utf-8" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date [%thread] %level - %message%newline" />
    </layout>
    <filter type="log4net.Filter.LevelRangeFilter">
      <levelMin value="WARN" />
      <levelMax value="WARN" />
    </filter>
  </appender>

  <appender name="StandardAppender" type="log4net.Appender.RollingFileAppender">
    <file value="Logs/Standard/" />
    <appendToFile value="true" />
    <rollingStyle value="Date" />
    <datePattern value="yyyy-MM-dd_standard.log" />
    <maxSizeRollBackups value="50" />
    <staticLogFileName value="false" />
    <encoding value="utf-8" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date [%thread] %level - %message%newline" />
    </layout>
    <filter type="log4net.Filter.LevelRangeFilter">
      <levelMin value="INFO" />
      <levelMax value="INFO" />
    </filter>
  </appender>
</log4net>

No arquivo Program.cs, integre o Log4Net configurando o builder de logging:

public static IHostBuilder BuildHost(string[] commandArgs) =>
    Host.CreateDefaultBuilder(commandArgs)
        .ConfigureLogging(builder =>
        {
            builder.AddLog4Net();
        })
        .ConfigureWebHostDefaults(host =>
        {
            host.UseStartup<ApplicationStartup>();
        });

Para registrar logs em classes específicas, injete ILoggerFactory e crie instâncias:

private readonly ILogger _logger;

public HomeController(ILoggerFactory factory)
{
    _logger = factory.CreateLogger<HomeController>();
}

Utilize métodos como LogInformation para registrar mensagens:

_logger.LogInformation("Processo de autenticação concluído com sucesso.");

Tags: log4net .net-core logging-configuration rolling-file-appender

Publicado em 9-19 11:31