Materiais de apoio
Há um tutorial bastante simples e direto para utilizar o NLong no pacote oficial do github.
Há também o vídeo “NLog: Logging to a file = Code in 60 Seconds”
É 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 resultado é uma configuração extremamente simples:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?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" | |
xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd" | |
autoReload="true" | |
throwExceptions="false" | |
internalLogLevel="Off" internalLogFile="c:\temp\nlog-internal.log" > | |
<targets> | |
<target name="logfile" xsi:type="File" fileName="mylogfile.txt" /> | |
<target name="console" xsi:type="Console" /> | |
<target name="debugger" xsi:type="Debugger" /> | |
<target name="trace" xsi:type="Trace" /> | |
</targets> | |
<rules> | |
<logger name="*" minlevel="Trace" writeTo="logfile" /> | |
<logger name="*" minlevel="Info" writeTo="console" /> | |
<logger name="*" minlevel="Debug" writeTo="debugger" /> | |
<logger name="*" minlevel="Trace" writeTo="trace" /> | |
</rules> | |
</nlog> |
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:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
private static Logger logger = LogManager.GetCurrentClassLogger(); |
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.