登录dotnet-core控制台应用程序和类库?

时间:2017-03-24 15:03:22

标签: .net logging console-application log4net .net-core

log4net的:

  • 是否存在来自log4net的原生支持?
  • 由于没有项目配置,log4net appender会去哪里?
  • 在代码中配置log4net会更好吗?

Microsoft.Extensions.Logging

  • 内置日志记录是否更好,应该实施?

还有其他候选人吗?

1 个答案:

答案 0 :(得分:6)

首先, Microsoft.Extensions.Logging 的引入需要一些澄清,我建议您阅读此网站https://msdn.microsoft.com/en-us/magazine/mt694089.aspx,其中说明:

  

记录?为什么我们需要一个新的日志框架?我们已经有NLog,Log4Net,Loggr,Serilog和内置的Microsoft.Diagnostics.Trace / Debug / TraceSource,仅举几例。

...

  

因此,您可能想要编写自己的日志API包装器,它会调用您或您公司本周选择的任何特定日志框架。

...

  

Microsoft提供的Microsoft.Extensions.Logging是包装器,因此每个人都不必编写自己的包装器。

现在,微软发布了一些开箱即用的接收器,他们会在这里收听:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/logging#built-in-logging-providers

正如您所看到的那样,很多目的地都没有,例如记录到文件。

幸运的是,对于你我来说已经有一些.Net日志实现采用了像ILogger这样的Microsoft.Extensions.Logging接口。有些人在这里收听:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/logging#third-party-logging-providers

如果您愿意在另一个日志记录框架上下注,我个人会推荐一个日志框架,它提供结构化日志记录,如Serilog(https://serilog.net/),它对新的.Net Core提供开箱即用的支持记录接口。

另外,请阅读本文以了解结构化日志记录的优势:https://softwareengineering.stackexchange.com/questions/312197/benefits-of-structured-logging-vs-basic-logging

编辑:使用此NuGet包对.Net Core for log4net进行原生支持:https://www.nuget.org/packages/RobertHargreaves.log4net.Trunk/ 要使用配置文件对其进行配置,请参阅此博文:https://stackify.com/making-log4net-net-core-work/

它似乎没有对Microsoft.Extensions.Logging系统的Ilogger和ILoggerFactory接口的本机支持。