Asp.net-Core
ASP.NET Core 的內置日誌記錄是否會使 NLog/Serilog/etc 過時?
我們使用 NLog 或 Serilog 進行日誌記錄。我們正忙著將一個系統從 ASP.NET 移植到 ASP.NET Core,它內置了.
理想情況下,我們希望放棄 NLog,因為似乎不再需要它。
但是,內置日誌記錄是否等同於 NLog?它是否缺少任何主要功能?繼續使用 NLog(或類似的東西,例如 Serilog)有什麼意義嗎?
ASP.NET 日誌是一個通用(日誌)介面和日誌實現。
您可以一起使用通用介面和第 3 方庫(例如 NLog),因為基礎設施已經為此做好了準備。
如果您將 NLog 接管內置的日誌記錄實現,您將贏得:
- 即時更改配置(在不重新啟動的情況下執行應用程序)
- 更多目標(例如數據庫、文件)。內置中沒有文件目標:https ://docs.microsoft.com/en-us/aspnet/core/fundamentals/logging 。NLog 中的郵件目標還沒有在 .NET Standard 中,但是已經計劃好了。.NET Standard 2 有郵件目標,.NET Standard 1 有 NLog.MailKit
- 目標中的更多選項(例如文件歸檔)
- 編寫額外的上下文資訊,例如
${processid}- 由於我們在性能優化方面投入了大量資金,因此我期望性能。
- 非同步日誌記錄 - 據我所知,它不在 ASP.NET 日誌記錄中。
- 高級功能,如緩衝、回退和限制日誌、使用上下文資訊過濾條件、並發寫入一個文件等。
- NLog 更容易擴展(不僅是目標,還有佈局渲染器、佈局等)
- 結構日誌記錄的可能性(Serilog,NLog 4.5)
但與往常一樣,如果您不需要這些功能,那麼可能更少(庫)更多。