パッケージ- 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、または受信者の期待に一致するその他のものにシリアル化できます。
シンクには、2 つの XML ベースのイベント フォーマッタがプリロードされています。 1 つは Log2Console で予期される log4j スキーマと一致し、もう 1 つは 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 に感謝します。