Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net core 是否使用ASP.NET核心';s内置日志使NLog/Serilog/etc过时?_Asp.net Core_Logging_Asp.net Core Mvc_Nlog_Serilog - Fatal编程技术网

Asp.net core 是否使用ASP.NET核心';s内置日志使NLog/Serilog/etc过时?

Asp.net core 是否使用ASP.NET核心';s内置日志使NLog/Serilog/etc过时?,asp.net-core,logging,asp.net-core-mvc,nlog,serilog,Asp.net Core,Logging,Asp.net Core Mvc,Nlog,Serilog,我们使用NLog或Serilog进行日志记录。我们正在忙着将一个系统从ASP.NET移植到ASP.NET核心,这是非常重要的 理想情况下,我们希望放弃NLog,因为似乎不再需要它了 但是,内置日志是否等同于NLog?它是否缺少任何主要功能?继续使用NLog(或类似的工具,如Serilog)有什么意义吗?我不会说ASP.NET Core的日志API使NLog和其他提供商过时。NET核心提供的是一个很好的抽象,因此可以在不更改依赖于日志的代码的情况下切换日志框架 Nlog仍然提供了ASP.NET核心

我们使用NLog或Serilog进行日志记录。我们正在忙着将一个系统从ASP.NET移植到ASP.NET核心,这是非常重要的

理想情况下,我们希望放弃NLog,因为似乎不再需要它了


但是,内置日志是否等同于NLog?它是否缺少任何主要功能?继续使用NLog(或类似的工具,如Serilog)有什么意义吗?

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


Nlog仍然提供了ASP.NET核心日志API中未实现的有用功能。

ASP.NET日志是一个通用(日志)接口和日志实现

您可以将公共接口和第三方库(如NLog)结合使用,因为基础设施已为此做好准备

如果您将NLog置于内置日志实现之上,您将赢得:

  • 动态更改配置(在不重新启动的情况下运行应用程序时)
  • 更多目标(例如数据库、文件)。内置中没有文件目标:。NLog中的邮件目标尚不符合.NET标准,但已经计划好了。对于.NET标准2和.NET标准1,邮件目标是NLog.MailKit
  • 目标中的更多选项(例如文件归档)
  • 编写额外的上下文信息,如
    ${processid}
  • 由于我们在性能优化方面投入了大量资金,所以我期望性能
  • 异步日志记录-据我所知,它不在ASP.NET日志记录中
  • 高级功能,如缓冲、回退和限制日志、使用上下文信息过滤条件、并发写入一个文件等
  • NLog更易于扩展(不仅是目标,还包括布局渲染器、布局等)
  • 构造测井的可能性(Serilog,NLog 4.5)

但和往常一样,如果您不需要这些功能,那么可能少(库)就是多

是的,NLog通过xml文件进行配置非常有用。不过,可以在ASP.NET核心配置框架中轻松完成。我想知道这是否是保留NLog的充分理由。那么我想这完全取决于您的要求。如果ASP.NET日志API对您来说足够了,请使用它。请记住,如果您想登录到文本文件,而不仅仅是控制台,您必须使用一些日志提供程序。Serilog有一个将日志转发到文本文件的简单配置。我没有意识到。这是一个主要缺失的功能!NLog或ASP.NET Core?Aspnet Core中是否缺少异步日志记录。换言之:)关于“动态更改配置(在不重新启动的情况下运行应用程序)”-->ASP.NET Core的一些记录器也支持此功能!但NLog绝对是一个整体的爱好者@你是说Serilog还是没有第三方图书馆?@Julian没有第三方图书馆。请在此处从默认ASP.NET核心模板中签出两个文件:。在Startup.cs中,您可以看到
reloadOnChange:true
,随后它将配置对象传递给
AddConsole
。如果更改
appsettings.json
,记录器将重新加载设置。