C#:
Registro de Logs

Como fazer:

Em C#, você pode usar o espaço de nome integrado System.Diagnostics ou bibliotecas de terceiros como NLog ou log4net. Aqui está um exemplo rápido usando a interface ILogger disponível no .NET Core:

using Microsoft.Extensions.Logging;
using System;

public class Program
{
    public static void Main()
    {
        using var loggerFactory = LoggerFactory.Create(builder => {
            builder.AddConsole();
        });

        ILogger logger = loggerFactory.CreateLogger<Program>();

        logger.LogInformation("Esta é uma mensagem informativa.");
        logger.LogWarning("Esta é uma mensagem de aviso.");
        logger.LogError("Esta é uma mensagem de erro.");
    }
}

Saída de exemplo:

info: Program[0]
      Esta é uma mensagem informativa.
warn: Program[0]
      Esta é uma mensagem de aviso.
fail: Program[0]
      Esta é uma mensagem de erro.

Aprofundando

A história do registro de logs no desenvolvimento de software é quase tão antiga quanto a programação em si; evoluiu de simples instruções de impressão para sistemas sofisticados e configuráveis. Originalmente, logs eram feitos escrevendo em arquivos ou no console, mas isso cresceu para incluir estruturas mais complexas como sistemas de agregação de logs e plataformas de rastreamento distribuído (como a pilha ELK ou Jaeger).

Alternativas para o registro de logs incorporado no .NET incluem bibliotecas de terceiros:

  • NLog: versátil e fácil de configurar, com muitos recursos para roteamento, formatação e filtragem de logs.
  • log4net: inspirado pela biblioteca Java log4j, é altamente configurável a partir de XML e suporta uma variedade de repositórios de logs.

Quando se trata de detalhes de implementação, a escolha da sua abstração de registro de logs (como Microsoft.Extensions.Logging) e do provedor de logs subjacente pode afetar significativamente o desempenho e a confiabilidade da sua aplicação. É crucial configurar os níveis de log apropriadamente e garantir que a escrita dos logs não se torne um gargalo.

Além disso, o logging estruturado - onde você registra não apenas strings, mas pares chave-valor ou objetos - permite logs mais precisos e acionáveis, que são mais fáceis de consultar e analisar.

Veja Também