2016-12-26 45 views

回答

4

asp.net日志记录是一种常见的(日志记录)接口和日志实现。

您可以将通用接口和第三方库(例如NLog)一起使用,因为基础结构已为此准备好了。

如果你把NLOG通过内置的日志实现你赢:

  • 更改配置上即时(而无需重新启动运行的应用程序)
  • 多个目标(例如数据库,文件)。内置:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/logging中没有文件目标。 NLog中的邮件目标目前还没有达到netstandard标准,但是已经计划好了。在目标
  • 更多的选择(例如文件归档)
  • 编写额外的上下文信息,如${processid}
  • 正如我们在性能optimalization投入大量的,我希望表现。
  • 异步日志记录 - 这是不是在asp.net日志记录据我所知。
  • 先进的功能,如缓冲,fallbacking &与上下文信息限制你的日志,过滤条件,编写并发到一个文件等
  • NLOG是容易扩展(不仅是目标,但也布局渲染,布局等)
  • 可能性结构性记录(Serilog,NLOG 4.5)

但一如既往,如果你不需要这些功能,那么也许以下(库)为多。

+0

从NLog或ASP.NET Core中缺少异步记录吗? – grokky

+0

Aspnet核心。转述:) – Julian

+0

关于“即时更改配置(运行应用程序时无需重新启动)” - >部分ASP。NET Core的记录器也支持这个功能!但是NLog总体来说绝对是更有魅力的! – Eilon

5

我不会说ASP.NET Core的日志API会让NLog和其他提供程序过时。 ASP.NET Core提供的是一个很好的抽象,因此日志框架可以在不更改依赖于日志记录的代码的情况下进行切换。

Nlog仍然提供有用的configuration features,它们不在ASP.NET Core日志API中实现。

+0

是NLog通过xml文件的配置很有用。尽管可以在ASP.NET Core配置框架中轻松完成。我想知道是否有足够的理由保留NLog。 – grokky

+0

那么我想这完全取决于你的要求。如果ASP.NET日志API足够适用于您 - 请使用它。请记住,如果你想记录到文本文件,不仅要控制台,你将不得不使用一些日志记录提供程序。 Serilog具有将日志转发到文本文件的简单配置。 – Andrius

+0

没有意识到它[不记录到磁盘](https://docs.microsoft.com/en-us/aspnet/core/fundamentals/logging#built-in-logging-providers)。这是一个主要的缺失功能! – grokky