首页 > 解决方案 > 在 dot net core 3.1 中将 NLog 注册为非特定主机的记录器

问题描述

我有非 Web 通用主机应用程序,根据https://docs.microsoft.com/en-us/aspnet/core/fundamentals/logging/?view=aspnetcore-3.1我应该在 .ConfigureLogging 添加记录器但是

      .ConfigureLogging(logging =>
      {
          logging.ClearProviders();
          logging.SetMinimumLevel(Microsoft.Extensions.Logging.LogLevel.Trace);
      })
      .UseNLog();  // NLog: Setup NLog for Dependency injection

我认为我的困惑是由于没有构建 Web 应用程序造成的,而指南指定为 asp.net 配置 NLog。为什么 NLog 与 Web 应用程序的包不同?这是由 NLog 自动记录由 Kestrel 或其他特定于 Web 的东西发布的事件引起的吗?UseNLog 方法(这是我假设的 NLog 定义的扩展?)和在服务中将 NLog 注册为单例有什么区别

标签: c#.net.net-corenlog

解决方案


AddNLog()和都是ClearProviders()扩展方法。您需要添加 using namespace 以及相关的 nuget-packages。

using NLog.Extensions.Logging;
using Microsoft.Extensions.Logging;

并将这些 nuget 包添加到您的项目中:

还可以找到 wiki 页面和示例:


推荐阅读