NLog com destino Seq - um ficheiro de log centralizado
O Seq foi criado para o log estruturado moderno com templates, os modelos de mensagens. Nada de perder tempo e esforço a extrair dados de logs de texto sem formatação com análise de log frágil; as propriedades associadas a cada evento de log são capturadas e enviadas para o Seq em formato JSON.
Por outro lado, 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 e suporta a criação de destinos customizados.
Para usar o Seq com NLog há que instalar primeiro o pacote Nuget NLog.Targets.Seq.
PM> Install-Package NLog.Targets.Seq
Depois disto, adicionar a referência para a assembly à configuração do NLog
<nlog xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.nlog-project.org/schemas/NLog.xsd">
<extensions>
<add assembly="NLog.Targets.Seq"/>
</extensions>
</nlog>
,adicionar o novo target, o destino,<target name="seq" xsi:type="BufferingWrapper" bufferSize="1000" flushTimeout="2000" slidingTimeout="false"> <target xsi:type="Seq" serverUrl="http://localhost:5341" apiKey="" /> </target>
e estabelecer as regras de aplicação do novo destino de escrita para log<rules>
<logger name="*" minlevel="Info" writeTo="seq" />
[...]
</rules>
Ilustração do exemplo do artigo NLog: logging mais fácil aplicado ao ficheiro de log centralizado Seq.
Exemplo de configuração para um Seq mais rico, para auditoria
<target name="seq" xsi:type="BufferingWrapper" bufferSize="1000" flushTimeout="2000" slidingTimeout="false">
<target xsi:type="Seq" serverUrl="http://localhost:5341" apiKey="" >
<property name="ThreadId" value="${threadid}" as="number" />
<property name="MachineName" value="${machinename}" />
<property name="UserName" value="${windows-identity}" />
<property name="ID" value="${guid:GeneratedFromLogEvent=true}"/>
<property name="Source" value="${callsite}"/>
<property name="Time" value="${longdate}"/>
<property name="Agent" value="${environment-user}"/>
<property name="Level" value="${uppercase:${level}}"/>
<property name="Count" value="${sequenceid}"/>
</target>
</target>
fontes: https://blog.datalust.co/nlog-4-5-structured-logging/,
https://github.com/datalust/nlog-targets-seq
Licença CC BY-SA 4.0
Silvia Pinhão Lopes, 5.1.20
Sem comentários: