NSwag on Asp.net Core
前言 ASP.NET core 的名字還沒記熟它又要改版本名了,不過對未來的發展這或許是好事吧。依據 roadmap 所示未來的版本名稱就會比較清楚一點。而在 .net 發長趨於穩定時開發應用時讓你又愛又恨的文件撰寫,你還在獨立寫一份嗎?程式碼跟文件之間的更新成本就不能在壓低一點嗎?若你還沒聽過 NSwag 的話這是一個你值得做的嘗試,另外不可或缺的就是 log 系統,你還在用 NLog 或是內建的日誌 lib 嗎?不體驗一下 Serilog 就太可惜了,尤其是目前應用多數跑在 container 裡,在系統 micro-service 化的現代裡,將 log 寫在本機裡在 container 數量漸多後管理上是有點麻煩,而 serilog 的外掛可以幫你把 log 直接送去指定的地方。 內文 本文將會基於 Asp.NET Core 3.1 版本來開發,雖然 .NET 5 已經推出但是它並非 LTS 版本所以並非首選。 本文的 source code 在 這裡 第一個步驟就是把必要的 Packages 裝一裝 1 dotnet add .\AspNetCoreSerilog\AspNetCoreSerilog.csproj package Serilog.AspNetCore 在 appsetting.json 直接將原本的 Logging 區塊取代為以下設定 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 { "Serilog": { "Using": [ "Serilog.Sinks.Console" ], "MinimumLevel": "Information", "WriteTo": [ { "Name": "Console", "Args": { "theme": "Serilog.Sinks.SystemConsole.Themes.AnsiConsoleTheme::Code, Serilog.Sinks.Console", "outputTemplate": "[{Timestamp:HH:mm:ss} {Level:u3}] {Message:lj} <s:{SourceContext}>{NewLine}{Exception}" } } ], "Enrich": [ "FromLogContext", "WithMachineName", "WithThreadId" ], "Properties": { "Application": "AspNetCoreSerilog" } } } 而在 Program.cs 也就是入口程式那邊補上以下程式 ...