

高岡智則
年齢:33歳 性別:男性 職業:Webディレクター(兼ライティング・SNS運用担当) 居住地:東京都杉並区・永福町の1LDKマンション 出身地:神奈川県川崎市 身長:176cm 体系:細身〜普通(最近ちょっとお腹が気になる) 血液型:A型 誕生日:1992年11月20日 最終学歴:明治大学・情報コミュニケーション学部卒 通勤:京王井の頭線で渋谷まで(通勤20分) 家族構成:一人暮らし、実家には両親と2歳下の妹 恋愛事情:独身。彼女は2年いない(本人は「忙しいだけ」と言い張る)
serilogとは?
serilogは、.NETアプリケーションのログを「構造化」して出力するためのライブラリです。従来のログはテキストの行だけを積み重ねますが、serilogはイベントに「プロパティ」を付けられるので、後から検索・分析がしやすくなります。
例えば「誰が」「いつ」「何が起きたのか」を一緒に記録でき、ログデータを分析ツールで見やすくするのに向いています。これにより、バグ探しや運用の監視が効率化されます。
どうして構造化ログが便利なのか
従来のログは長い文字列の羅列になりがちで、特定の条件で絞り込みたいときに苦労します。構造化ログでは「イベント名」「ユーザーID」「エラーコード」などの値を個別の情報として扱えるため、後で絞り込み検索が直感的にできます。
基本の使い方
まず、.NETのプロジェクトに Serilog のパッケージを追加します。Visual Studio なら NuGet パッケージマネージャーから「Serilog」と「Serilog.Sinks.Console」などをインストールします。
次に、アプリの起動時に設定を作成します。例のようにLoggerConfigurationを使い、どこへ出力するかを決めます。コードの例は次のとおりです。
Log.Logger = new LoggerConfiguration().WriteTo.Console().CreateLogger();
その後、ログを書き出すときはLog.Information や Log.Error などのメソッドを使います。以下は分かりやすい例です。 Log.Information('ユーザー {UserId} がログインしました。', userId); この書き方の「{UserId}」はプロパティとして取り出せる情報です。
構造化ログの用語
プロパティ:イベントと一緒に記録するデータ。キーと値の組です。
サイン: ログの出力先を指す言葉。公式では Sink と呼ばれ、出力先を増やすときに役立ちます。
出力先(Sink)の例
サプライヤーや運用環境に合わせて複数の出力先を使えます。以下はよく使われる例です。
| Sinks | 説明 |
|---|---|
| Console | 端末にログを表示します。開発時に便利です。 |
| File | ファイルに追記します。長期的な記録に向いています。 |
| Seq | 構造化ログをストリームで収集・分析します。開発・運用で人気のスキームです。 |
| Elasticsearch | 大規模な検索が必要な場合に使われることがあります。 |
実務では、これらを組み合わせて 安定した監視 と 迅速なトラブル対応 を実現します。
注意点
構造化ログは便利ですが、個人情報や機密情報をそのまま出力しないように気をつけます。設定で不要なプロパティを除外したり、情報のマスキングを行うことが大切です。
serilogの同意語
- 構造化ログライブラリ
- ログエントリをキーと値のペアで記録できる機能を提供するライブラリ。Serilogはこのタイプの代表例です。
- .NET向け構造化ログライブラリ
- .NETアプリケーションで構造化ログを扱う目的のライブラリ。
- .NET用ログライブラリ
- .NET環境でのログ出力を支える基本的なライブラリ。
- 構造化ロギングフレームワーク
- 構造化データを活用してログを収集・整形・出力する枠組み。
- ログ出力ライブラリ
- アプリのイベント情報を外部へ出力して記録する機能を提供するライブラリ。
- ログ記録ライブラリ
- イベント情報を記録して後から分析できる形で保存する機能を持つライブラリ。
- 構造化データ対応ログフレームワーク
- ログを構造化データとして扱い、メタデータ付きで出力する枠組み。
- JSONログライブラリ
- ログをJSON形式で出力・格納することを想定したライブラリ。
- イベントログライブラリ
- アプリのイベントを一元的に追跡・記録するためのライブラリ。
- ログフォーマット制御ライブラリ
- 出力ログの形式・構造を細かく設定できる機能を持つライブラリ。
- 構造化ログ記録ツール
- 構造化ログを生成・保管するためのツール群の一部。
- Serilog
- .NET向けの構造化ログライブラリの正式名称。導入することで高度なログ整形が可能。
- 可観測性向上用ログライブラリ
- アプリの挙動を把握しやすくするための、構造化ログを提供するライブラリ。
- 監視・追跡向けログライブラリ
- アプリの監視・デバッグに役立つ、追跡可能なログ機能を提供するライブラリ。
serilogの対義語・反対語
- 無ログ
- ログを全く記録・出力しない状態。Serilogのようなロギング機能を使わない運用のこと。
- ログなし
- ログの生成先が設定されておらず、実質的にログを残さない状態。
- ログ停止
- アプリケーション内のログ出力機能を一時的または恒久的に停止している状態。
- 非構造化ログ
- ログデータを構造化フォーマットに整形せず、自由形式のテキストとして記録する状態。
- 手動ログのみ
- 自動化されたロギング機能を使わず、開発者が都度手動でログを記述する運用。
- ログ抑止
- ログの生成・出力を抑制する設定・運用。
- ログ収集なし
- 生成したログを外部の収集・監視サービスへ送らず、ローカルだけで完結する状態。
- 非構造化出力
- 構造化されたデータ形式を使わず、自由形式で出力する状態。
- ログ出力停止
- ログ出力機能を明示的に停止させる設定。
- 完全停止モード
- 全てのロギング機能を無効化した状態。
serilogの共起語
- Serilog
- NET 向けの構造化ログライブラリ。イベントデータをキーと値で整然と記録します。
- LoggerConfiguration
- ロガーを作成・設定するビルダー。出力先やフォーマットをチェーンで組み立てます。
- LogEvent
- 1つのログエントリ。時刻・レベル・メッセージ・プロパティを含むデータ構造です。
- LogContext
- 現在のスコープに値を追加する文脈。追跡情報の結びつきを強化します。
- PropertyEnricher
- 特定のプロパティをログイベントに付与する Enricher の代表例です。
- Enrich
- ログイベントを拡張する機能の総称。複数の Enricher を組み合わせて使います。
- LogEventProperty
- ログイベントに含まれる個別のプロパティ(キーと値)です。
- MinimumLevel
- 記録の最低レベルを設定します。Verbose/Debug/Information/Warning/Error など。
- OutputTemplate
- ログ出力の書式テンプレート。時間・レベル・メッセージの順序などを定義します。
- Sink
- ログの出力先を表す総称。
- Sinks.Console
- コンソール/標準出力へ出力する Sink。
- Sinks.File
- ファイルへ出力する Sink。長期保存に向きます。
- Sinks.Seq
- Seq へ送信する Sink。構造化ログの可視化に使われます。
- Sinks.Elasticsearch
- Elasticsearch へ出力する Sink。検索・分析に適しています。
- Sinks.ApplicationInsights
- Azure Application Insights へ送信する Sink。
- Sinks.MongoDB
- MongoDB へ出力する Sink。
- Serilog.Formatting.Json.JsonFormatter
- JSON 形式で出力するフォーマッターの実装です。
- JsonFormatter
- JSON 形式の出力を行うフォーマッター。
- CompactJsonFormatter
- コンパクトな JSON 出力フォーマッター。
- SystemTextJsonFormatter
- System.Text.Json を用いた JSON フォーマッター。
- MessageTemplate
- メッセージのプレースホルダを使うテンプレート。
- Template
- ログフォーマット全般のテンプレート概念。
- Destructure
- オブジェクトをログに展開して表示するデストラクチャリング機能。
- DestructuringPolicy
- Destructure の挙動を制御するポリシー。
- LoggingLevelSwitch
- 実行時にログレベルを切り替えるスイッチ。
- MinimumLevelOverride
- 特定のカテゴリで最小レベルを上書きする設定。
- ILogger
- Microsoft.Extensions.Logging の ILogger インターフェース。Serilog で使うことが多い。
- ILoggerFactory
- ILogger を生成するファクトリ。
- ASP.NET Core
- ASP.NET Core アプリ内で Serilog を統合するシナリオ。
- UseSerilog
- アプリ起動時に Serilog を使用する設定を適用する拡張メソッド。
- Serilog.Extensions.Logging
- Serilog と Microsoft.Extensions.Logging の連携を提供するライブラリ。
- Serilog.Settings.Configuration
- 設定ファイルから Serilog の設定を読み込む拡張機能。
- AppSettings.json
- 設定を格納する一般的なファイル。Serilog の設定をここに記述することが多い。
- RollingInterval
- ファイル Sink のローテーション間隔(日/時など)を設定。
- FileSizeLimitBytes
- ファイル出力のサイズ上限を設定。
- CorrelationId
- 分散トレーシングで用いられる識別子。ログに含めると追跡が楽になります。
- EventId
- イベントを識別するための ID。
- LogEventPropertyValue
- ログイベントのプロパティ値の表現。
serilogの関連用語
- Serilog
- NET向けの構造化ログライブラリ。プログラム内で一貫した形式でログを生成し、さまざまな出力先に送ることができます。
- 構造化ログ
- ログのメッセージだけでなくキーと値のペアを組み合わせて出力する方式。後で検索・分析しやすくなります。
- ログイベント
- 1つの記録として扱われる情報の集まり。タイムスタンプ、レベル、メッセージ、プロパティなどを含みます。
- ログレベル
- ログの重要度を示す指標。代表的な順は Verbose, Debug, Information, Warning, Error, Fatal です。
- メッセージテンプレート
- プレースホルダを使って動的にメッセージを作る書き方。{Name} のような形式で値を差し込みます。
- プロパティ
- ログイベントに付与する名前と値のペア。検索や集計の軸になります。
- デストラクチャリング
- 複雑なオブジェクトを分解して出力する方法。オブジェクトの各要素を個別に表示します。
- エンリッチャー
- ログイベントに追加情報を自動で付与する部品。機械名や環境情報などを付けることが多いです。
- エンリッチメント
- エンリッチャーで追加された情報のこと。用語としては同義で使われます。
- ログコンテキスト
- 同じ処理の流れで共有したいプロパティをスコープ付きで追加する仕組み。
- サンク
- ログの出力先を指します。コンソール、ファイル、データベースなどが該当します。
- Serilog.Sinks.Console
- コンソールへ出力する出力先。開発時のリアルタイム確認に便利です。
- Serilog.Sinks.File
- ファイルへログを書き出す出力先。後日分析に適しています。
- Serilog.Sinks.RollingFile
- 日付やサイズでファイルを回転させて保存する出力先。長期間のログに適しています。
- Serilog.Sinks.Seq
- Seq という構造化ログサーバへ送信するための出力先。検索・可視化が容易です。
- Serilog.Sinks.Elasticsearch
- Elasticsearch へ送信して Kibana などで分析する出力先。
- Serilog.Sinks.ApplicationInsights
- Azure Application Insights へ送信してアプリケーションの監視・分析に使う出力先。
- Serilog.Extensions.Logging
- Microsoft.Extensions.Logging との連携を実現する拡張。既存のロガーと統合できます。
- Serilog.AspNetCore
- ASP.NET Core アプリで Serilog を使うための統合機能。
- JsonFormatter
- 出力をJSON形式で整形するフォーマット。
- OutputTemplate
- Console などの出力で使われる文字列テンプレート。時間やレベルなどを整形します。
- MinimumLevel
- 出力するログの最低レベルを設定します。低いレベルのログを抑制できます。
- LevelSwitch
- 動的に変更可能なログレベルの切替機。実行時に詳細化を変更できます。
- Override
- 特定の名前空間やカテゴリのログレベルを個別に上書きします。
- Log.Logger
- グローバルな静的ロガー。初期化後に全体で利用されます。
- ILogger
- Microsoft.Extensions.Logging の基本インタフェース。Serilog ではこれを実装します。
- LogContext
- 処理のスコープ内で共有プロパティを追加する機能。リクエストごとに追加情報を持たせられます。
- Enrich.WithMachineName
- 実行中のマシン名を自動でログに付与します。
- Enrich.WithEnvironmentUserName
- 実行環境のユーザー名を自動でログに付与します。
- MessageTemplate
- プレースホルダを含むメッセージテンプレートのこと。{Name} のように値を差し込みます。
- EventId
- イベントの識別子。後でイベントを絞り込むのに便利です。
- Exception
- 例外情報をログに含めることでスタックトレースなどを追跡できます。
- StackTrace
- 例外発生時のスタックトレース。原因の特定に役立ちます。
- Timestamp
- ログが記録された時刻。時刻情報は分析の基本です。
- SelfLog
- Serilog 自身のデバッグ情報を出力する仕組み。問題解決時に役立ちます。
- Filter
- 特定の条件に合うログだけを出力するフィルタ機能。ノイズを減らせます。
- Serilog.Filters.Expressions
- 式ベースのフィルタを提供する拡張。条件を直感的に設定できます。
- AppSettings.json
- 設定ファイルの Serilog セクション。アプリ起動時の設定として使います。
- WriteTo
- 出力先の設定項目。どのサンクにどの程度の頻度で書くかを定義します。
- Using
- 追加のアセンブリを先に読み込むための設定。サンクを利用する準備をします。
- CloseAndFlush
- アプリケーション終了時に未処理のログを書き出して閉じる処理。
serilogのおすすめ参考サイト
- ASP.NET CoreにSerilogを導入する - 初心者向けガイド - Zenn
- Serilogとは?C#/.NET向けの構造化ログライブラリを徹底解説
- ログとは - 意味の解説|ITトレンドのIT用語集
- 【2025】Pythonのlog(ログ)とは何か?効果的な記録・出力方法を徹底解説



















