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.
- Adicionar referência ao NLog
Inclua o pacote NLog no projeto via NuGet ou adicionando a DLL manualmente.
- 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.
- 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.
- Registrar mensagens no código
Utilize os métodos da classe auxiliar para gravar logs:
RegistroLog.LogInfo("Autenticação concluída com sucesso");
- Acessar os logs
Os logs serão armazenados conforme o destino configurado. Para arquivos, verifique o diretório especificado na configuração do NLog.