OSS探訪GitHubでログイン

名前付きプロパティを保った.NETログを複数の出力先へ送る

スコアの見方

OSS規模スコアはStars・Watchers・Forks・Contributorsを対数圧縮して重み付けした現在の規模指標(上限なし)です。発掘スコアは現在のOSS規模スコアから発掘時点のOSS規模スコアを引いた値、更新ペースは直近30日Commit数、成長モメンタムは直近の観測期間におけるOSS規模スコア差、OSS健全度は取得できた更新状況・Community Health・Releaseの0〜100評価です。

Stars
8,049
主要言語
C#
ライセンス
Apache-2.0
リポジトリ最終更新
2026/09/13
ページ内ナビ

概要

Serilogは、.NETアプリケーションの診断情報を構造化イベントとして記録するライブラリです。文中へ埋め込む値に名前を付け、表示用の文と検索・集計に使うデータを同じログイベントに残せます。

特徴と向いている用途

公式資料に基づく紹介・実機未検証 · 内容確認日:

主な特徴

メッセージテンプレートから検索できる項目を作る

Log.Information("Processed {Count} items", 3)のようなメッセージテンプレートは、表示文とCountという名前付き値を一緒に記録します。出力先を追加するとコンソール、ファイル、クラウドサービス、データベース、メッセージキューなどへイベントを送り、情報追加機能でアプリケーション名や要求IDなどの共通情報を加えられます。

出典:[1]

向いている用途

分散した処理を同じ項目で検索・相関する

Webリクエスト、バックグラウンドジョブ、外部API呼び出しをまたいで同じ項目名を残したい.NETアプリケーションに適しています。人が読む文だけに値を埋め込む場合と比べ、障害時にRequestIdやCustomerId、処理時間などで絞り込み、集計や相関を行いやすくなります。

出典:[1]

導入前の確認

出力先、終了処理、記録する値を運用設計に含める

Serilog本体だけでは出力されないため、少なくとも1つの出力先を設定します。バッファを使う出力先では、終了前に未送信分を書き出す処理が必要で、保存先の停止時にログを失うか、アプリケーションを遅らせるかも確認が必要です。秘密情報や個人情報はメッセージテンプレートへ渡す前に除外または伏せ字化してください。v4.4.0は.NET 6、8、9、10と.NET Standard 2.0などを対象にし、GitHubはApache-2.0と表示しています。

出典:[1][2][4][5]

参考にした公式資料

  1. [1]Serilog v4.4.0 README(2026-10-04)
  2. [2]Serilog v4.4.0 project targets(2026-10-04)
  3. [3]Serilog.Sinks.Console v6.1.1 project targets(2026-10-04)
  4. [4]serilog/serilog GitHub repository metadata(2026-10-04)
  5. [5]Serilog v4.4.0 LICENSE(2026-10-04)
編集部からの補足

構造化ログの価値は、選んだ出力先と保存先が名前付き項目を保てるかで決まります。実際の出力先で検索、保持期間、失敗時の動作を確かめ、出力先パッケージも本体とは別に保守状況を評価してください。

3ステップで試す

  1. 1

    .NET 8のコンソールプロジェクトを作る

    .NET 8 SDKと、macOSまたはLinuxのPOSIXシェル、あるいはWindowsのGit BashまたはWSLを前提に、試行用プロジェクトを作成して移動します。以降も同じ端末と作業ディレクトリを使います。

    dotnet new console -n serilog-demo --framework net8.0 && cd serilog-demo
  2. 2

    固定版の本体とコンソール出力先を追加する

    確認したSerilog本体とコンソール出力用パッケージをNuGetから固定バージョンで追加します。

    dotnet add package Serilog --version 4.4.0 && dotnet add package Serilog.Sinks.Console --version 6.1.1
  3. 3

    構造化イベントを出力して確かめる

    Program.csをLF改行で生成し、Countという名前付き項目を持つイベントをコンソールへ出力して、表示結果を確認します。ローカルファイル以外は変更しません。

    printf '%s\n' 'using Serilog;' '' 'Log.Logger = new LoggerConfiguration().WriteTo.Console().CreateLogger();' 'Log.Information("Processed {Count} items", 3);' 'Log.CloseAndFlush();' > Program.cs && dotnet run | tee output.txt && grep -F 'Processed 3 items' output.txt
公式READMEで確認

成長

成長の推移 · 直近30日

8,049 Stars

推移データを蓄積中です。

開発アクティビティ

直近90日・週次

Commit(直近30日)
1
Open PR
6

開発アクティビティを蓄積中です。

Built with

カテゴリとタグ

GitHubデータ

GitHubのデータGitHubの詳細データを見る

GitHub Topics

  • serilog
Stars
8,049
Forks
866
Watchers
161
Open Issues
15
Contributors
122
所有者種別
Organization
主要言語
C#
ライセンス
Apache-2.0
リポジトリ最終更新
2026/09/13

このOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。

情報の誤りを報告

掲載内容に誤りや古い情報があればお知らせください。

このページを読んで、次に何をすればよいか分かりましたか?