NLog vs log4net

Tanto NLog e log4net são duas escolhas populares, ao selecionar um registro de quadro .NET applications. Neste post, você vai aprender tudo sobre ambos os frameworks e as diferenças. Para aqueles de vocês que não conhecem um ou ambos os frameworks, vamos começar com algumas palavras sobre cada framework.

log4net

provavelmente a estrutura de Registo mais antiga do bloco, o log4net já existiu bastante desde que o .NET foi introduzido. log4net foi originalmente uma versão interna do Apache log4j desenvolvida pela Neoworks Limited em 2001. O projeto rapidamente se mudou para Sourceforge (o GitHub de 2001) e foi lançado sob a Licença Apache. Desde então, o log4net tem sido uma das escolhas mais populares no mundo.NET para adicionar o logging às aplicações.

log4net funciona com o conceito de remetentes, onde as mensagens de log podem ser encaminhadas para diferentes reservas de dados. Muitos appenders foram implementados durante os anos, como o logging para o sistema de arquivos, servidor SQL, endpoints HTTP, e até mesmo bases de dados NoSQL, no entanto sendo mensagens de texto não estruturadas, log4net e NoSQL não vão exatamente de mãos dadas.

NLog

While log4net quickly became the default choice, alternatives began to show up. Provavelmente o primeiro competidor real a dominar a log4net foi a NLog. Originalmente desenvolvido por Jarek Kowalski e com pedidos puxados de quase 100 pessoas, o blog é uma grande alternativa. Enquanto o log4net praticamente ficou parado a partir de 2006,o NLog apenas continuou. Enquanto Jarek parecia desligar o plug ao começar no Google, a comunidade parecia subir e novos lançamentos ainda estão fluindo.

como log4net, o blog contém vários alvos de log e é capaz de logar mensagens para várias reservas de dados.

configuração

todas as estruturas de Registo necessitam de algum tipo de configuração, a fim de que a estrutura saiba o que registar e para onde.

log4net

log4net está configurado através da sua aplicação.ficheiro de configuração ou log4net dedicado.a configuração:

NLog

NLog pode ser configurada através de XML e C#. A maioria das pessoas usa XML, desde que isso está lá desde o início e desde que a API baseada em C# não é tão agradável como os frameworks mais recentes como Serilog.

registar as mensagens

quando se trata de registar as mensagens da sua aplicação, o log4net e o NLog funcionam de forma bastante semelhante.

log4net

as mensagens de registo são escritas utilizando a API log4net:

var log = LogManager.GetLogger(typeof(Bar));log.Debug("Hello World");

informações adicionais de Registo podem ser anexadas a uma mensagem de Registo usando uma gama de diferentes opções de contexto:

embora possa incorporar informação directamente nas mensagens de registo com o log4net, o registo semântico não é suportado.

NLog

NLog fornece uma API semelhante ao log4net para o registro de mensagens configurado conjunto de metas:

var logger = NLog.LogManager.GetCurrentClassLogger();logger.Debug("Hello World");

propriedades Adicionais podem ser anexadas bem:

var msg = new LogEventInfo(LogLevel.Debug, "", "Hello World");msg.Properties.Add("Application", "MyCoolApp");logger.Debug(msg);

A recente versão do NLog suporta semântica de log. Para adicionar semântica às suas mensagens de Registo, use a sintaxe curly brace:

logger.Info("Order {orderid} created for {user}", 42, "Kenny");

conclusão

escolher um vencedor não é o objetivo deste post. Ambos os quadros de exploração têm os seus próprios benefícios e desvantagens.

log4net

> Vantagens