Paquete - Serilog.Sinks.Udp | Plataformas : .NET Framework 4.6.1, .NET Standard 1.3/2.0/2.1
Log4jTextFormatter
Log4netTextFormatter
En el siguiente ejemplo, el receptor enviará paquetes UDP en la red al host local en el puerto 7071.
Serilog . ILogger log = new LoggerConfiguration ( )
. MinimumLevel . Verbose ( )
. WriteTo . Udp ( "localhost" , 7071 , AddressFamily . InterNetwork )
. CreateLogger ( ) ;
Usado junto con Serilog.Settings.Configuration, el receptor se puede configurar en appsettings.json
.
{
"Serilog" : {
"MinimumLevel" : " Verbose " ,
"WriteTo" : [
{
"Name" : " Udp " ,
"Args" : {
"remoteAddress" : " localhost " ,
"remotePort" : 7071 ,
"family" : " InterNetwork "
}
}
]
}
}
Utilizado junto con Serilog.Settings.AppSettings, el receptor se puede configurar en XML <appSettings>
.
<? xml version = " 1.0 " encoding = " utf-8 " ?>
< configuration >
< appSettings >
< add key = " serilog:minimum-level " value = " Verbose " />
< add key = " serilog:using:Udp " value = " Serilog.Sinks.Udp " />
< add key = " serilog:write-to:Udp " />
< add key = " serilog:write-to:Udp.remoteAddress " value = " localhost " />
< add key = " serilog:write-to:Udp.remotePort " value = " 7071 " />
< add key = " serilog:write-to:Udp.family " value = " InterNetwork " />
</ appSettings >
</ configuration >
Producir eventos de registro es sólo la mitad de la historia. A menos que los consumas en un asunto que te beneficie en el desarrollo o la producción, en primer lugar, realmente no hay necesidad de producirlos.
Durante el desarrollo, estuve enviando paquetes UDP a la dirección de loopback y usé Log2Console para visualizarlos. Admite receptores UDP y me permite filtrar y buscar según mis necesidades.
Llevarlo al siguiente nivel es cuando usted, como equipo, acuerda enviar los eventos de registro a una dirección de multidifusión, haciéndolos accesibles a todos los miembros del equipo. Esto puede resultar beneficioso para el departamento de control de calidad que desea supervisar los eventos de registro de todas las instancias de su aplicación en ejecución.
El formateador de eventos es una plantilla de salida con esteroides. Tiene la responsabilidad de convertir un único evento de registro en una representación textual. Puede serializar el evento de registro en JSON, XML o cualquier otra cosa que coincida con las expectativas del receptor.
El receptor viene precargado con dos formateadores de eventos basados en XML. Uno coincide con el esquema log4j esperado por Log2Console y el otro coincide con el esquema log4net esperado por Log4View.
Log4jTextFormatter
El evento de registro tiene el formato según el esquema XML log4j esperado por Log2Console.
< log4j : event logger = " Some.Serilog.Context " timestamp = " 1184286222308 " level = " ERROR " thread = " 1 " >
< log4j : message >Something failed</ log4j : message >
< log4j : throwable >An exception describing the failure< log4j : throwable >
</ log4j : event >
Log4netTextFormatter
El evento de registro tiene el formato de acuerdo con el esquema XML de log4net esperado por Log4View.
< log4net : event logger = " Some.Serilog.Context " timestamp = " 2017-09-01T22:00:00.000+02:00 " level = " DEBUG " thread = " 1 " username = " MACHINEusername " domain = " dotnet " >
< log4net : locationInfo class = " Some.Serilog.Context " method = " System.String Get(Int32) " />
< log4net : properties >
< log4net : data name = " log4net:HostName " value = " MACHINE " />
</ log4net : properties >
< log4net : message >Something went wrong.</ log4net : message >
< log4net : throwable >System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values.</ log4net : throwable >
</ log4net : event >
Las siguientes aplicaciones de ejemplo demuestran el uso de este receptor en varios contextos:
Si desea incluir el receptor UDP en su proyecto, puede instalarlo directamente desde NuGet.
Para instalar el receptor, ejecute el siguiente comando en la Consola del Administrador de paquetes:
PM> Install-Package Serilog.Sinks.Udp
Si este proyecto te ha ayudado a mantenerte productivo y ahorrar dinero, puedes invitarme a una taza de café :)
Gracias JetBrains por su importante iniciativa de apoyar a la comunidad de código abierto con licencias gratuitas para sus productos.