NLog: logging mais fácil
O NLog é uma plataforma de log para .NET, NETSTANDARD, Xamarin e Silverlight. O NLog torna mais fácil a produção e gestão de logs de alta qualidade para qualquer aplicação, independentemente do tamanho ou complexidade.
Características de Destaque
O NLog pode escrever cada mensagem de log dinamicamente para um ou vários destinos em simultâneo. Existem também destinos wrapper que permitem buffering, load balacing, situações de failover e escrita assíncrona.O NLog pode processar mensagens de diagnóstico em qualquer linguagem .NET, formatadas e enviadas para várias saídas de destino. A lista de destinos está explanada na wiki. Ficheiro, Consola, Base de Dados, E-mail, Log de Eventos e ASP.NET trace são os destinos mais utilizados. Esta plataforma suporta a criação de destinos customizados.
A configuração pode ser feita tanto por ficheiro .config como programaticamente.
Instalação
Instalação com pacote NuGetPM> Install-Package NLog.Config
Para instalação manual, seguir as instruções aqui.
Exemplo de Utilização
Exemplo de NLog.config<?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">
<variable name="logDirectory" value="${basedir}/logs"/>
<!--
See https://github.com/nlog/nlog/wiki/Configuration-file
for information on customizing logging rules and outputs.
-->
<targets>
<target name="console" xsi:type="ColoredConsole"
layout="${date:format=HH\:mm\:ss}|${level}|${stacktrace}|${message}" />
<target name="async" xsi:type="AsyncWrapper" queueLimit="5000" overflowAction="Discard">
<target xsi:type="File" name="f" fileName="${logDirectory}/${shortdate}.log"
layout="${longdate} ${uppercase:${level}} ${message}" keepFileOpen="false" encoding="UTF-16" />
</target>
</targets>
<rules>
<logger name="*" minlevel="Debug" writeTo="async" />
<logger name="*" levels="Info,Warn" writeTo="console" />
</rules>
</nlog>
Exemplo de classe com escrita para log com a biblioteca NLog
using NLog;
using System;
namespace logging.app.NLog
{
class Program
{
//It is advised to create one (private static) Logger per class.
private static Logger logger = LogManager.GetCurrentClassLogger();
static void Main(string[] args)
{
int k = 42;
int l = 100;
logger.Trace("Sample trace message, k={0}, l={1}", k, l);
logger.Debug("Sample debug message, k={0}, l={1}", k, l);
logger.Info("Sample informational message, k={0}, l={1}", k, l);
logger.Warn("Sample warning message, k={0}, l={1}", k, l);
logger.Error("Sample error message, k={0}, l={1}", k, l);
logger.Fatal("Sample fatal error message, k={0}, l={1}", k, l);
logger.Log(LogLevel.Info, "Sample informational message, k={0}, l={1}", k, l);
Console.ReadLine();
}
}
}
Outputs Produzidos
Referência: Projecto NLog
Licença CC BY-SA 4.0
Silvia Pinhão Lopes, 25.10.17
Sem comentários: