
Serilog .NET (開発者向けの仕組み)
.NETアプリケーションにおけるSerilogロガー設定と構造化された診断ログの動作設定の紹介
.NET Coreでは、効率的な構造化Serilogログ設定は、アプリケーションの動作やログイベントを診断して理解するために重要です。 さまざまなログライブラリの中で、Serilogはその強力な構造化ログメッセージ機能で際立っています。 従来のログとは異なり、構造化ログはログレベルのメッセージを構造化データとしてフォーマットし、分析やクエリを容易にします。 この記事では、Serilogが.NET 6アプリケーションのログプロセスをどのように向上させるかを探ります。ログイベントが単なる文字列ではなく、構造化されクエリ可能なオブジェクトになることを保証します。 このアプローチは、ログメッセージを戦略的な資産に変え、より効果的なモニタリングと分析を可能にします。
Serilogの機能を理解する
Serilogは、.NETアプリケーション向けの強力で柔軟なログライブラリです。 ログ体験を向上させ、アプリケーションの動作の診断と分析を容易にするさまざまな機能を提供します。 このセクションでは、Serilogが提供する主な機能のいくつかを探ります。
構造化ログ
Serilogの際立った機能の1つは、構造化ログのサポートです。 単にメッセージをプレーンテキストとして記録するのではなく、Serilogは構造化データをログすることを可能にします。 この構造化データは、JSONオブジェクトや辞書など、シリアル化できる任意のタイプにすることができます。 構造化データをログすることで、ElasticsearchやSplunkのようなツールを使用してログイベントを簡単に分析およびクエリできます。
柔軟な設定
Serilogは柔軟な設定オプションを提供し、アプリケーションのニーズに応じたログの動作をカスタマイズすることができます。 プログラムによる設定、または設定ファイルを使用してSerilogを構成できます。 この柔軟性により、アプリケーションの再起動を必要とせずに、ランタイムでログの動作を調整できます。
シンクライブラリ
Serilogは、異なる目的地にログイベントを送信するためのさまざまなシンクライブラリを提供します。 人気のあるシンクライブラリには次のものがあります:
- Serilog.Sinks.Console: ログイベントをコンソールに送信します。
- Serilog.Sinks.File: ログイベントをテキストファイルに書き込みます。
- Serilog.Sinks.Seq: ログイベントをSeqという構造化ログサーバーに送信します。
- Serilog.Sinks.Elasticsearch: ログイベントをElasticsearchに送信します。
これらのシンクライブラリにより、異なるログインフラストラクチャやツールとSerilogを簡単に統合できます。
ログの追加情報
ログの追加情報は、ログイベントに追加のコンテキスト情報を追加できる機能です。 Serilogは、タイムスタンプ、スレッドID、ログレベルなどの情報を自動的に追加できるさまざまなエンリッチャを提供します。 カスタムエンリッチャを作成して、アプリケーション固有の情報を追加することもできます。
ログフィルタリング
Serilogは、さまざまな基準に基づいてログイベントをフィルタリングすることを可能にします。 ログレベル、プロパティ値、その他の条件に基づいてログイベントを除外または含めるフィルタを設定できます。 このフィルタリング機能により、分析またはトラブルシューティングに最も関連するログイベントに集中できます。
これらの機能を理解し活用することで、Serilogの力を利用してログの能力を高め、アプリケーションの動作に関する貴重な洞察を得ることができます。
構造化ログ:重要な機能
Serilogの主な強みは、ログメッセージを構造化データに変えることにあります。 他のログライブラリがプレーンテキストを出力するのに対し、Serilogは構造化されたJSON形式でログを生成するため、ログデータの解析やクエリが簡単です。 この機能は、運用のインテリジェンスを重視する現代のアプリケーションには不可欠です。 特にログメッセージが高度な分析のためにELK(Elasticsearch、Logstash、Kibana)スタックなどのシステムに取り込まれる場合、構造化ログが有益です。
豊富なログイベント詳細
Serilogは、アプリケーション内部で起こっていることを総合的に示すコンテキスト情報でログイベントを強化します。 各ログイベントは、単なるログメッセージを超えて、タイムスタンプ、ログレベル、例外の詳細、およびカスタムプロパティを含む複数の詳細を含むことができます。 これにより、Serilogはログの深さと明瞭さの点で他のログライブラリを凌ぎ、開発者にアプリケーションの動作とパフォーマンスに関する重要な洞察を提供します。
ASP.NET CoreでSerilogを実装する
Serilogを.NET 6 ASP.NET Coreアプリケーションに統合するには、appsettings.jsonファイルまたはSerilog設定セクションを使用してSerilogを設定し始めます。 この設定は、ログデータがどのように、どこで、何をキャプチャするかを規定します。
設定ファイルを使用して
設定JSONファイルを使用して、ログレベル、出力先(ログファイルやコンソールなど)、ログ出力形式を定義します。 設定ファイルのアプローチは、コードを変更することなくログの動作を変更する柔軟性を提供します。 これは、appsettings.jsonファイルに設定を指定することで行われ、コンソール、ファイル、さらにはクラウドベースのログ管理サービスなど、さまざまなシンクにログ出力を送信できます。
コードでプログラム的に
または、LoggerConfigurationクラスを使用してコード内で直接Serilogを設定します。 この方法は、例えば動的ログレベルやカスタムログシンクなど、より複雑なログシナリオを設定するためによく使用されます。 例えば、特定の間隔または特定のサイズに達したときに新しいログファイルを作成するローリングログファイルを設定し、効率的なログファイル管理を確保することができます。
// Create a logger instance with a rolling log file that creates a new log file every day
var logger = new LoggerConfiguration()
.WriteTo.File("logs/myapp.txt", rollingInterval: RollingInterval.Day)
.CreateLogger();' Create a logger instance with a rolling log file that creates a new log file every day
Dim logger = (New LoggerConfiguration()).WriteTo.File("logs/myapp.txt", rollingInterval:= RollingInterval.Day).CreateLogger()ASP.NET Coreとの統合
ASP.NET CoreとSerilogを統合するには、Package Manager Consoleを通じてSerilogパッケージを追加し、Program.csファイルでロガーを設定します。.NET 6のvar appステートメントは、Serilogをアプリケーションのログインフラストラクチャにシームレスに統合します。 このプロセスは、デフォルトのロガーをSerilogに置き換え、すべてのログメッセージがSerilogパイプラインを通じて処理されることを保証します。
var builder = WebApplication.CreateBuilder(args);
// Configure Serilog to use settings from appsettings.json and write logs to the console
builder.Host.UseSerilog((ctx, lc) => lc
.WriteTo.Console()
.ReadFrom.Configuration(ctx.Configuration));
var app = builder.Build();Dim builder = WebApplication.CreateBuilder(args)
' Configure Serilog to use settings from appsettings.json and write logs to the console
builder.Host.UseSerilog(Sub(ctx, lc) lc _
.WriteTo.Console() _
.ReadFrom.Configuration(ctx.Configuration))
Dim app = builder.Build()Iron Software SuiteとSerilogをASP.NET Coreに統合する
Iron Software Suiteは、.NET 6アプリケーション内でSerilogを使用してログの機能を大幅に向上させることができるC#ライブラリのコレクションです。 このスイートには、IronPDF、IronOCR、IronXL、IronZIP、IronQR、IronBarcode、およびIronWebScraperなどのさまざまなツールが含まれており、それぞれが独自の機能を提供しており、ASP.NET Coreアプリケーションに統合してそのログおよびデータ処理機能を強化することができます。
ASP.NET CoreアプリケーションでIron Software SuiteとSerilogを統合するには、次の一般的な手順を実行します。
- NuGetまたはPackage Manager Consoleを使用して必要なIron Software Suiteパッケージをインストールします。
- Serilog.Sinks.FileなどのログファイルやSerilog.Sinks.Consoleなどのコンソール出力用の好みのシンクライブラリを使用してSerilogを設定します。
- アプリケーションのコード内でIron Software Suiteライブラリを使用してその機能を活用し、ログプロセスを強化します。 これは、PDFの生成、バーコードの読み取り、またはWebコンテンツのスクレイピングなどのタスクを含む場合があります。
Iron Software SuiteをSerilogと統合することで、ASP.NET Coreアプリケーションのログ機能を拡張し、これらのライブラリによって提供される追加の機能を活用できます。
IronPDF
IronPDFは.NETアプリケーション内でのPDFの作成、読み取り、および編集を可能にします。 これは、ログデータのPDFレポートを生成し、ログ情報を標準化された形式で簡単に配布および表示できるSerilogと組み合わせると特に有用です。

IronOCR
IronOCRは、125の言語で画像をテキストに翻訳できる光学式文字認識(OCR)ライブラリです。 これはテキストデータを画像やスキャンドキュメントから抽出する必要があるログシナリオで利用でき、ログデータにより多くのコンテキスト情報を追加します。

IronXL
IronXLは、Office Interopを必要とせずにExcelと連携する機能を提供します。これは特にログ目的に有益であり、ログデータをExcelにエクスポートしてさらなる分析と報告を行い、データの操作と視覚化のための馴染みのあるインターフェイスを提供します。

IronBarcode
IronBarcodeは、QRコードやバーコードの読み取りと書き込みを容易にします。 このライブラリは、ログファイル内に埋め込まれた情報のセキュリティと追跡性を向上させるために、エンコードされた情報を埋め込んだり抽出したりします。

結論
ASP.NET CoreアプリケーションでIron Software SuiteをSerilogと統合することで、ログプロセスを充実させ、ログデータの処理、提示、分析における多様性を追加します。 PDFレポートの生成、画像ベースのログの処理、Excelデータの取り扱い、ログファイルサイズの管理、ログ情報の保護、Webコンテンツのスクレイピングなど、SerilogとIron Software Suiteの組み合わせは、.NET 6環境での高度なログおよびデータ処理に多くの可能性を開きます。
Iron Software Suite は、Iron Software の C# ライブラリ の無料トライアルを提供しており、開発者が ASP.NET Core アプリケーションの機能や能力を探求する素晴らしい機会を提供します。特に、Serilog と統合して高度なログ記録やデータ処理機能を実現する際に役立ちます。

ジェイコブ・メラーはIron Softwareの最高技術責任者(CTO)であり、C# PDFテクノロジーを開拓する先見的なエンジニアです。Iron Softwareのコアコードベースを支えるオリジナル開発者として、彼は創業以来、会社の製品アーキテクチャを形成し、CEOのCameron Rimingtonとともに、会社をNASA、Tesla、および世界的な政府機関にサービスを提供する50人以上の会社に変えました。1999年にロンドンで最初のソフトウェアビジネスを開業し、2005年に最初 for .NETコンポーネントを作成した後、Microsoftのエコシステム全体で複雑な問題を解決することを専門としました。
関連する記事


