Introdução e instalação

Introdução

  1. Definição
    Log4net = Log for .NET, é a versão oficial portada do Apache Log4j (biblioteca clássica de logs para Java) para a plataforma .NET, uma biblioteca open source consolidada para gravação de registros de aplicação.
  2. Função principal
    Depois de adicionar ao projeto, você não precisa implementar manualmente lógica de leitura e gravação de arquivos. Gera rapidamente logs de aplicação para armazenar informações de execução e pilhas de exceção, facilitando depuração e resolução de problemas em ambiente de produção.
  3. Relação entre os termos
  • Log4j: Componente consolidado de registro para ecossistema Java
  • Log4net: Versão adaptada do Log4j para C#/.NET

Instalação

Para projetos .NET modernos, prefira instalar via NuGet:

dotnet add package log4net

No Visual Studio, você também pode pesquisar por log4net em “Gerenciar Pacotes NuGet” e instalar com um clique.

No início o log4net era instalado baixando o arquivo dll manualmente. Hoje o NuGet é a abordagem padrão.

Configuração do ambiente Log4Net

log4net funciona em qualquer tipo de projeto: aplicações de console, desktop ou aplicações web.

Fluxo de utilização

Passo 1: editar Web.config e adicionar configuração do log4net
<?xml version="1.0"?>
<configuration>
  <configSections>
    <!-- Registrar seção de configuração log4net -->
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
  </configSections>

  <log4net>
    <!-- Appender de arquivo com rotação por data -->
    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
      <!-- Caminho para salvar logs: prefira caminho relativo, evite caminho absoluto fixo de pendrive -->
      <param name="File" value="logs\\"/>
      <!-- Modo de acréscimo: true = adicionar registros, false = limpar arquivo a cada inicialização -->
      <param name="AppendToFile" value="true"/>
      <!-- Número máximo de arquivos de log mantidos -->
      <param name="MaxSizeRollBackups" value="10"/>
      <!-- Nome de arquivo fixo false = gerar arquivos diferentes por data -->
      <param name="StaticLogFileName" value="false"/>
      <!-- Padrão de nomenclatura dos arquivos -->
      <param name="DatePattern" value="yyyy-MM-dd&quot;.log&quot;"/>
      <!-- Estratégia de rotação: Date = dividir logs por data -->
      <param name="RollingStyle" value="Date"/>

      <!-- Modelo de formatação de saída dos logs -->
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
        <!-- ❗O modelo antigo continha %loggername desnecessário que gerava texto extra no final do log, removido -->
      </layout>
    </appender>

    <!-- Configuração raiz dos logs, válida para toda aplicação -->
    <root>
      <!-- Nível de log all: exibir todos os níveis; opções: DEBUG/INFO/WARN/ERROR/FATAL/OFF -->
      <level value="all"/>
      <!-- Associar o appender definido acima -->
      <appender-ref ref="RollingLogFileAppender"/>
    </root>
  </log4net>
</configuration>Code language: HTML, XML (xml)
  1. Não use caminhos absolutos fixos como G:\xxx, eles param de funcionar no servidor. Use o caminho relativo logs\\;
  2. No ambiente de produção ajuste o parâmetro level para INFO ou ERROR, para evitar que muitos logs DEBUG consumam espaço em disco.
Passo 2: inicializar Log4Net de forma global

Adicione o código de inicialização dentro do método Application_Start no arquivo Global.asax, a configuração é carregada na inicialização da aplicação

protected void Application_Start(object sender, EventArgs e)
{
    // Inicializar log4net, ler configuração do Web.config
    log4net.Config.XmlConfigurator.Configure();
}Code language: JavaScript (javascript)

Aviso: sem essa linha nenhum arquivo de log será gerado mesmo chamando os métodos de gravação. Esse é um erro muito comum.

Passo 3: obter o Logger e gravar logs nas páginas

Escreva o código de chamada em Default.aspx.cs. O código pode ser colocado em qualquer lugar, esse exemplo demonstra uma página simples.

using log4net;

public partial class _Default : System.Web.UI.Page
{
    // Obter instância de log, a string é o nome personalizado do logger
    public static readonly ILog log = LogManager.GetLogger("logger-name");

    protected void Page_Load(object sender, EventArgs e)
    {
        log.Info("Registro comum");
        log.Error("Registro de erro");
        // Outros níveis suportados
        // log.Debug("Registro de depuração");
        // log.Warn("Registro de aviso");
        // log.Fatal("Registro de erro fatal");
    }
}

Boa prática: declare ILog como static readonly para evitar criar instâncias repetidas e melhorar desempenho.

Resultado da execução

  1. Após executar a aplicação, a pasta logs é criada automaticamente na raiz do site;
  2. São gerados arquivos de log com o padrão de nome 2026-08-04.log;
  3. Exemplo de conteúdo dentro do arquivo:
2026-08-04 15:30:22,123 [6] INFO  logger-name - Registro comum
2026-08-04 15:30:22,129 [6] ERROR logger-name - Registro de erroCode language: CSS (css)

Observações complementares

  • Além de gravar em arquivos, o Log4Net também suporta saída para console, banco de dados e e‑mail;
  • Para projetos novos compare NLog / Serilog: eles têm melhor suporte para .NET Core/.NET 5+. O Log4net é usado principalmente para manter projetos antigos WebForm e WinForms.

Introdução e instalação

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *