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

netcore 2.1:无法使用新的LoggerFactory()创建记录器

  •  0
  • opensas  · 技术社区  · 6 年前

    我有一个基本测试控制器,可以创建一个记录器,如下所示:

    public class WSTestController
    {
        protected readonly ILogger _log;
        protected readonly HttpClient _client;
        protected readonly IServiceCollection _services;
    
        public WSTestController() {
            _log = new LoggerFactory().AddConsole().CreateLogger(this.GetType().Name);
            var testContext = new TestContext();
            _client = testContext.Client;
        }
    

    这在netcore 2.0中可以正常工作,但在netcore 2.1中我遇到以下错误:

    controllers/WSTestController.cs(22,40): error CS1061: 
    'LoggerFactory' does not contain a definition for 'AddConsole' and no accessible extension method 'AddConsole' accepting a first argument of type 'LoggerFactory' could be found 
    (are you missing a using directive or an assembly reference?) [[...]/src/mtss-ws.integrationtests/mtss-ws.integrationtests.csproj]
    

    如何在netvore 2.1中手动实例化控制台记录器(没有DI)?

    2 回复  |  直到 6 年前
        1
  •  1
  •   kml    6 年前

    here

    您也可以通过简单地使用AddProvider方法手动执行此操作:

    loggerFactory.AddProvider(
        new ConsoleLoggerProvider(
            (text, logLevel) => logLevel >= LogLevel.Debug, true));
    
        2
  •  0
  •   opensas    6 年前

    此错误与我从netcore 2.0升级到2.1有关

    在这个 SO question migration guide