Uso do componente de log NLog em C# com classe NLogHelper

Uso do componente de log NLog em C# com classe NLogHelper

Para implemnetar logs em aplicações C# utilizando o NLog, siga este guia técnico.

  1. Adicionar referência ao NLog

Inclua o pacote NLog no projeto via NuGet ou adicionando a DLL manualmente.

  1. Configurar o arquivo NLog.config

Crie um arquivo NLog.config na raiz do projeto. Defina a propriedade "Copy to Output Directoyr" como "Always" para garantir a cópia automática.

Exemplo de configuração

Este exemplo configura logs assíncronos em arquivos com layout personalizado:


<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      autoReload="true">

  <targets>
    <target name="asyncFileTarget" xsi:type="AsyncWrapper" queueLimit="3000" overflowAction="Discard">
      <target xsi:type="File" 
              fileName="${basedir}/logs/${shortdate}.log" 
              layout="${longdate}|${level:uppercase=true}|${message}|${exception:format=tostring}" />
    </target>
  </targets>

  <rules>
    <logger name="*" minlevel="Info" writeTo="asyncFileTarget" />
  </rules>
</nlog>

Ajuste os targets para banco de dados ou outros destinos conforme necessário. A configuração inclui regras para filtrar níveis de log.

  1. Implementar classe auxiliar de log

Crie uma classe estática para encapsular as chamadas do NLog:


namespace ExemploApp.Dados
{
    using NLog;

    public static class RegistroLog
    {
        private static readonly Logger _logger = LogManager.GetCurrentClassLogger();

        public static void LogDebug(string mensagem, params object[] args)
        {
            _logger.Debug(mensagem, args);
        }

        public static void LogDebug(string mensagem, Exception excecao)
        {
            _logger.Debug(excecao, mensagem);
        }

        public static void LogInfo(string mensagem, params object[] args)
        {
            _logger.Info(mensagem, args);
        }

        public static void LogInfo(string mensagem, Exception excecao)
        {
            _logger.Info(excecao, mensagem);
        }

        public static void LogAviso(string mensagem, params object[] args)
        {
            _logger.Warn(mensagem, args);
        }

        public static void LogAviso(string mensagem, Exception excecao)
        {
            _logger.Warn(excecao, mensagem);
        }

        public static void LogErro(string mensagem, params object[] args)
        {
            _logger.Error(mensagem, args);
        }

        public static void LogErro(string mensagem, Exception excecao)
        {
            _logger.Error(excecao, mensagem);
        }

        public static void LogFatal(string mensagem, params object[] args)
        {
            _logger.Fatal(mensagem, args);
        }

        public static void LogFatal(string mensagem, Exception excecao)
        {
            _logger.Fatal(excecao, mensagem);
        }
    }
}

Esta classe fornece métodos para diferentes severidades, simplificando o registro em todo o aplicativo.

  1. Registrar mensagens no código

Utilize os métodos da classe auxiliar para gravar logs:


RegistroLog.LogInfo("Autenticação concluída com sucesso");

  1. Acessar os logs

Os logs serão armazenados conforme o destino configurado. Para arquivos, verifique o diretório especificado na configuração do NLog.

Tags: NLog CSharp Logging .NET configuration

Publicado em 7-12 09:02