Paket - Serilog.Sinks.Udp | Platform - .NET Framework 4.6.1, .NET Standard 1.3/2.0/2.1
Log4jTextFormatter
Log4netTextFormatter
Pada contoh berikut, sink akan mengirimkan paket UDP di jaringan ke localhost pada port 7071.
Serilog . ILogger log = new LoggerConfiguration ( )
. MinimumLevel . Verbose ( )
. WriteTo . Udp ( "localhost" , 7071 , AddressFamily . InterNetwork )
. CreateLogger ( ) ;
Digunakan bersama dengan Serilog.Settings.Configuration, sink dapat dikonfigurasi di appsettings.json
.
{
"Serilog" : {
"MinimumLevel" : " Verbose " ,
"WriteTo" : [
{
"Name" : " Udp " ,
"Args" : {
"remoteAddress" : " localhost " ,
"remotePort" : 7071 ,
"family" : " InterNetwork "
}
}
]
}
}
Digunakan bersama dengan Serilog.Settings.AppSettings, sink dapat dikonfigurasi dalam 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 >
Memproduksi peristiwa log hanyalah separuh cerita. Kecuali Anda mengkonsumsinya untuk hal yang menguntungkan Anda dalam pengembangan atau produksi, sebenarnya tidak ada kebutuhan untuk memproduksinya terlebih dahulu.
Dalam pengembangan saya telah mengirimkan paket UDP ke alamat loopback, dan menggunakan Log2Console untuk memvisualisasikannya. Ini mendukung penerima UDP, dan memungkinkan saya memfilter dan mencari sesuai kebutuhan saya.
Membawanya ke tingkat berikutnya adalah ketika Anda sebagai tim setuju untuk mengirimkan peristiwa log ke alamat multicast, sehingga dapat diakses oleh semua anggota tim. Hal ini dapat bermanfaat bagi Quality Assurance yang ingin memantau peristiwa log dari semua contoh aplikasi Anda yang sedang berjalan.
Pemformat acara adalah templat keluaran pada steroid. Ia memiliki tanggung jawab untuk mengubah satu peristiwa log menjadi representasi tekstual. Itu dapat membuat serial acara log menjadi JSON, XML atau apa pun yang sesuai dengan harapan penerima.
Sink sudah dimuat sebelumnya dengan dua pemformat acara berbasis XML. Salah satunya cocok dengan skema log4j yang diharapkan oleh Log2Console dan yang lainnya cocok dengan skema log4net yang diharapkan oleh Log4View.
Log4jTextFormatter
Peristiwa log diformat sesuai dengan skema XML log4j yang diharapkan oleh 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
Peristiwa log diformat sesuai dengan skema XML log4net yang diharapkan oleh 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 >
Contoh aplikasi berikut menunjukkan penggunaan sink ini dalam berbagai konteks:
Jika Anda ingin menyertakan wastafel UDP dalam proyek Anda, Anda dapat menginstalnya langsung dari NuGet.
Untuk menginstal sink, jalankan perintah berikut di Package Manager Console:
PM> Install-Package Serilog.Sinks.Udp
Jika proyek ini membantu Anda tetap produktif dan menghemat uang, Anda dapat membelikan saya secangkir kopi :)
Terima kasih JetBrains atas inisiatif penting Anda untuk mendukung komunitas open source dengan lisensi gratis untuk produk Anda.