【问题标题】:Does ASP.NET Core's built-in logging make NLog/Serilog/etc obsolete?ASP.NET Core 的内置日志记录是否会使 NLog/Serilog/etc 过时?
【发布时间】:2017-05-10 21:48:31
【问题描述】:

我们使用 NLog 或 Serilog 进行日志记录。我们正忙于将系统从 ASP.NET 移植到 ASP.NET Core,has logging built in

理想情况下,我们希望删除 NLog,因为似乎不再需要它。

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

【问题讨论】:

    标签: asp.net-core logging asp.net-core-mvc nlog serilog


    【解决方案1】:

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

    您可以同时使用通用接口和第 3 方库(例如 NLog),因为基础设施已经为此做好了准备。

    如果您将 NLog 置于内置日志记录实现之上,您将获胜:

    • 即时更改配置(无需重启即可运行应用程序)
    • 更多目标(例如数据库、文件)。内置中没有文件目标:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/loggingNLog 中的邮件目标还没有在 .NET Standard 中,但已经在计划中了。 .NET Standard 2 中的邮件目标和 .NET Standard 1 中的 NLog.MailKit
    • 目标中的更多选项(例如文件归档)
    • 写额外的上下文信息,比如${processid}
    • 由于我们在性能优化方面投入了大量资金,因此我期望性能。
    • 异步日志记录 - 据我所知,它不在 ASP.NET 日志记录中。
    • 高级功能,例如缓冲、回退和限制日志、使用上下文信息过滤条件、并发写入一个文件等。
    • NLog 更容易扩展(不仅是目标,还有布局渲染器、布局等)
    • 结构日志记录的可能性(Serilog、NLog 4.5)

    但与往常一样,如果您不需要这些功能,那么(库)可能越少越好。

    【讨论】:

    • NLog 或 ASP.NET Core 中是否缺少异步日志记录?
    • Aspnet 核心。改写了:)
    • 关于“即时更改配置(在不重新启动的情况下运行应用程序)”--> 一些 ASP.NET Core 的记录器也支持这一点!但总体而言,NLog 绝对是更高级的!
    • @Eilon 你是说 Serilog 还是没有第 3 方库?
    • @Julian 没有第三方库。在此处查看默认 ASP.NET Core 模板中的两个文件:github.com/aspnet/Templates/tree/dev/src/Rules/StarterWeb/…。在 Startup.cs 中,您可以看到 reloadOnChange: true,然后它会将配置对象传递给 AddConsole。如果您更改appsettings.json,记录器将重新加载设置。
    【解决方案2】:

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

    Nlog 仍然提供有用的configuration features,但在 ASP.NET Core 日志记录 API 中未实现。

    【讨论】:

    • 是的 NLog 通过 xml 文件的配置很有用。不过可以在 ASP.NET Core 配置框架中轻松完成。我想知道是否有足够的理由保留 NLog。
    • 那么我想这完全取决于您的要求。如果 ASP.NET 日志记录 API 对您来说足够了 - 使用它。请记住,如果您想登录到文本文件,而不仅仅是控制台,您将不得不使用一些日志记录提供程序。 Serilog 具有将日志转发到文本文件的简单配置。
    • 没意识到doesn't log to disk。这是一个主要缺失的功能!
    猜你喜欢
    • 1970-01-01
    • 2018-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多