✅ ログデモ

ログレベルの使い分け・パフォーマンス計測・機密情報マスキングを体験するデモ

📚 ログレベルの使い分け

レベル 用途 本番出力
Debug 開発時のデバッグ情報 SQL実行・メソッド呼び出し
Information 重要な処理の記録 ユーザー作成成功・API呼び出し
Warning 回復可能な問題・注意事象 リトライ実行・遅延検出
Error 例外・回復不可能なエラー DB接続失敗・予期しない例外

🧪 デモ 1: 全ログレベルを出力

ボタンを押すと Debug / Information / Warning / Error の4レベルをサーバーコンソールに出力します。

_logger.LogDebug("【Debug】SQL実行: SELECT * FROM Users...");
_logger.LogInformation("【Information】ユーザーが作成されました: UserId=123");
_logger.LogWarning("【Warning】レスポンスが遅延しています: 1500ms");
_logger.LogError("【Error】データベース接続に失敗しました");

🧪 デモ 2: パフォーマンス計測ログ

処理時間が 1000ms を超えると Warning、以下なら Information が出力されます。

if (elapsedMs > 1000)
    _logger.LogWarning("Slow operation detected: {Name} took {ElapsedMs}ms", ...);
else
    _logger.LogInformation("Operation completed: {Name} in {ElapsedMs}ms", ...);

🧪 デモ 3: 機密情報マスキング

password / apikey / token / secret を含む文字列は *** にマスクされてログ出力されます。

// NG: そのままログ出力(機密情報が漏れる)
_logger.LogInformation("Connecting with password=MySecret123");

// OK: マスキングしてからログ出力
var masked = LogMaskingHelper.Mask(input); // → "password=***"
_logger.LogInformation("接続情報: {Info}", masked);

🔗 参考リンク