代码之家  ›  专栏  ›  技术社区  ›  Jez

在没有DI的情况下登录.NETCore?

  •  4
  • Jez  · 技术社区  · 7 年前

    2 回复  |  直到 7 年前
        1
  •  11
  •   Scott Chamberlain    7 年前

    如果你想自己做,你需要实例化一个 LoggerFactory CreateLogger 创建实例或使用 new Logger<T>(ILoggerFactory) 创建记录器。

    using Microsoft.Extensions.Logging;
    
    static class MyLogger {
    
        public static ILoggerFactory LoggerFactory {get;}
    
        static MyLogger() {
            LoggerFactory = new LoggerFactory();
            LoggerFactory.AddConsole();
        }
    }
    
    public MyClass {
        private readonly ILogger _logger = new Logger<MyClass>(MyLogger.LoggerFactory);
    }
    
        2
  •  6
  •   Jez    7 年前

    main NLog NuGet package ,手动创建我自己的 NLog.config tutorial GetCurrentClassLogger() ,将其创建为类的静态成员,然后直接将其用于日志记录。这是一个非常简单的设置,不需要DI。NLog应该更好地记录它。

        3
  •  0
  •   noontz    4 年前

    根据Ilyas和bokibegs在Scotts中的评论,这里的答案是.NET5.0当前的工作代码

    var factory = LoggerFactory.Create(b => b.AddConsole());
    var logger = factory.CreateLogger<T>();