套件- Serilog.Sinks.Udp |平台- .NET Framework 4.6.1、.NET Standard 1.3/2.0/2.1
Log4jTextFormatter
Log4netTextFormatter
在下列範例中,接收器將網路上的 UDP 套件傳送至連接埠 7071 上的本機。
Serilog . ILogger log = new LoggerConfiguration ( )
. MinimumLevel . Verbose ( )
. WriteTo . Udp ( "localhost" , 7071 , AddressFamily . InterNetwork )
. CreateLogger ( ) ;
與 Serilog.Settings.Configuration 結合使用,可以在appsettings.json
配置接收器。
{
"Serilog" : {
"MinimumLevel" : " Verbose " ,
"WriteTo" : [
{
"Name" : " Udp " ,
"Args" : {
"remoteAddress" : " localhost " ,
"remotePort" : 7071 ,
"family" : " InterNetwork "
}
}
]
}
}
與 Serilog.Settings.AppSettings 結合使用,可以在 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 >
產生日誌事件只是故事的一半。除非您在開發或生產中使用它們對您有利,否則實際上沒有必要先生產它們。
在開發過程中,我一直將 UDP 套件發送到環回位址,並使用 Log2Console 來視覺化它們。它支援UDP接收器,並允許我根據我的需要進行過濾和搜尋。
當您作為一個團隊同意將日誌事件發送到多播位址時,將其提升到一個新的水平,使所有團隊成員都可以存取它們。這對於希望監控正在運行的應用程式的所有實例的日誌事件的品質保證人員來說是有益的。
事件格式化程式是一個強大的輸出範本。它負責將單一日誌事件轉換為文字表示。它可以將日誌事件序列化為 JSON、XML 或任何符合接收者期望的其他內容。
此接收器預先載入了兩個基於 XML 的事件格式化程式。一種是符合 Log2Console 期望的 log4j 模式,另一種是符合 Log4View 期望的 log4net 模式。
Log4jTextFormatter
日誌事件根據 Log2Console 期望的 log4j XML 模式進行格式化。
< 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
日誌事件根據 Log4View 期望的 log4net XML 模式進行格式化。
< 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 >
以下範例應用程式示範了該接收器在各種上下文中的用法:
如果要在專案中包含 UDP 接收器,可以直接從 NuGet 安裝它。
若要安裝接收器,請在程式包管理器控制台中執行以下命令:
PM> Install-Package Serilog.Sinks.Udp
如果這個專案幫助您保持生產力並省錢,您可以請我一杯咖啡:)
感謝 JetBrains 透過為您的產品提供免費授權來支持開源社群的重要舉措。