2017-03-24 47 views
3

log4net的:登錄dotnet-core控制檯應用程序和類庫?

  • 有來自log4net的原生支持?
  • 由於沒有項目配置,log4net appender會去哪裏?
  • 在代碼中配置log4net會更好嗎?

Microsoft.Extensions.Logging

  • 是內置在登錄更好的選擇,應該執行?

還有其他的候選人嗎?

回答

5

首先,引進Microsoft.Extensions.Logging需要一些澄清,我建議你閱讀本網站https://msdn.microsoft.com/en-us/magazine/mt694089.aspx其中規定:

記錄?爲什麼我們需要一個新的日誌框架?我們已經有NLog,Log4Net,Loggr,Serilog和內置的Microsoft.Diagnostics.Trace/Debug/TraceSource等等。

...

因此,你可能很想編寫調用哪個特定的日誌框架您或您的公司在本週選擇你自己的日誌API的包裝。

...

什麼微軟與Microsoft.Extensions.Logging提供的是包裝內,以便大家不必自己寫。

現在,有一些外的盒子匯微軟出貨,他們在這裏聽:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/logging#built-in-logging-providers

正如你可以看到很多的目的地不存在,像記錄到文件中。

幸運的是,您和我已經有一些.Net日誌記錄實現採用Microsoft.Extensions.Logging接口,如ILogger。有些人在這裏聽:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/logging#third-party-logging-providers

如果你願意賭上另一日誌框架我個人推薦一個日誌框架,它提供結構化的記錄像Serilog(https://serilog.net/),這對於新出的現成的支持.Net核心日誌記錄界面。

此外,閱讀結構化記錄的優點:https://softwareengineering.stackexchange.com/questions/312197/benefits-of-structured-logging-vs-basic-logging

編輯:沒有爲原生支持。https://www.nuget.org/packages/RobertHargreaves.log4net.Trunk/ 要使用配置文件中看到我這篇文章對其進行配置:使用這個NuGet包log4net的網絡核心https://stackify.com/making-log4net-net-core-work/

這似乎並不具有對Ilogger和Microsoft.Extensions.Logging系統ILoggerFactory接口的原生支持。

+1

謝謝@Peter。這是非常有用和有見地的。我最終使用了NLog https://github.com/NLog/NLog.Extensions.Logging,它內置了很多appender,所以非常適合這個目的。 – Walaitki

相關問題