sábado, 30 de janeiro de 2016

Utilizando o NLog

É um vídeo muito mais simples que o citado no post do log4net, mostrando muito menos detalhes, mas já dá para ver que é muito rápido começar a utilizar o NLog.

Há muita documentação no wiki do pacote oficial do GitHub.

1 - Instalar na aplicação o pacote nuget, que pode ser feito via comando no Package Manager Console:

Install-Package NLog

Para ser um acelerador, aconselho instalar a configuração na aplicação:
Install-Package NLog.Config

Há diversos instaladores específicos para facilitar ainda mais o uso, dependendo do projeto que for necessário:
  • NLog.Web - pacote contem targets e layout-renderes específicos para o ASP.Net and IIS.
  • NLog.Windows.Forms - pacote contem targets específicos Windows.Forms
  • NLog.Extended - MSMQ target, AppSetting layout renderer
  • NLog.Config - Configuração NLog exemplo/inicial
  • NLog.Schema - XSD Schema para o NLog config xml - para, entre outras coisas, ter o Intellisense no Visual Studio

2 - Configurar NLog.config

Aqui o NLog fica muito mais simples, já que o intellisense do Visual Studio ajuda em toda a configuração do arquivo.

O nível (level) do NLog possibilita as essas opções:
  • Trace - log muito detalhado, o que pode incluir alto volume de informação (como payload do protocolo). Este nível de log é tipicamente habilitado somente durante o desenvolvimento.
  • Debug - informação de depuração, menos detalhada que o trace, tipicamente não habilitado em produção.
  • Info - mensagens de informação, que normalmente são habilitado no ambiente de produção
  • Warn - mensagens de avisos, tipicamente para assuntos não críticos, que podem ser recuperadas ou falhas temporárias
  • Error - mensagens de erros - na maioria das vezes estas são exceções
  • Fatal - erros muito sérios
O que é o appender do log4net no NLog é o Targets (https://github.com/nlog/nlog/wiki/Targets)
Há também vários layouts disponívels (https://github.com/nlog/nlog/wiki/Layouts)
E é possível configurá-los com várias opções (https://github.com/NLog/NLog/wiki/Layout-renderers)

O resultado é uma configuração extremamente simples:

 Também é fácil fazer a configuração do log através de programação, como nesta resposta do Stack Overflow "Add, enable and disable NLog loggers programmatically".

3 Definir a instância da classe

Há um método para facilitar a configuração da instância na classe:

4 Efetuar log

logger.Trace("");
logger.Debug("");
logger.Info("");
logger.Warn("");
logger.Error("");
logger.Fatal("");

logger.Log(LogLevel.Info, "");

O código fonte do exemplo está disponível no GitHub.