Skip to content

CloudyWing/DotNetLoggingSample

Repository files navigation

DotNetLoggingSample

.NET 10 ASP.NET Core Minimal API 範例專案,示範 Microsoft.Extensions.Logging 的基本使用與常見日誌最佳化技巧。每個 demo 對應筆記 淺談 .NET 預設 Logger 及其優化技巧 的一個章節,可搭配閱讀。

技術重點

  • Target framework:.NET 10
  • 應用程式類型:ASP.NET Core Minimal API
  • Logger:Microsoft.Extensions.Logging
  • 測試:NUnit 4.6.0 + NSubstitute 5.3.0
  • 專案結構:src/tests/

端點

Method Path 說明
GET /api/logging 列出所有 demo 端點。
POST /api/logging/categories 寫出 category filter 範例日誌,搭配 appsettings.jsonLogLevel 設定觀察過濾結果。
POST /api/logging/is-enabled 示範 IsEnabled 跳過昂貴運算。
POST /api/logging/structured?userId=U12345&department=研發部 寫出結構化日誌欄位。
POST /api/logging/logger-message-define?userId=U12345&department=研發部 寫出 LoggerMessage.Define 範例日誌。
POST /api/logging/logger-message-source-generator/by-field?userId=U12345&department=研發部 SG 模式一:類別欄位作為 logger 來源。
POST /api/logging/logger-message-source-generator/by-parameter?userId=U12345&department=研發部 SG 模式二:ILogger 作為方法參數。
POST /api/logging/logger-message-source-generator/by-extension?userId=U12345&department=研發部 SG 模式三:擴充方法(this ILogger)。

執行

dotnet run --project .\src\DotNetLoggingSample\DotNetLoggingSample.csproj

切換為 JSON Console Logger:

dotnet run --project .\src\DotNetLoggingSample\DotNetLoggingSample.csproj --LoggingDemo:UseJsonConsole=true

LoggingDemo:UseJsonConsole 也可改寫進 appsettings.json

測試

dotnet test .\DotNetLoggingSample.slnx

授權條款

本專案採用 MIT License

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages