.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.json 的 LogLevel 設定觀察過濾結果。 |
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=trueLoggingDemo:UseJsonConsole 也可改寫進 appsettings.json。
dotnet test .\DotNetLoggingSample.slnx本專案採用 MIT License。