首页 > 解决方案 > 记录器未显示在 ASP.NET Core 2.1 应用程序中

问题描述

正如标题所说,为什么当我运行应用程序时我的 Logger 没有显示在控制台中dotnet run

不过,我在 Controller 以外的类中使用 Logger。

这是代码:

public class TestController : Controller
{
    private readonly ITestService service;
    public TestController(ITestService service)
    {
        this.service = service;
    }
}

public class TestService : ITestService
{
    private readonly ILogger logger;
    public TestService(ILogger<TestService> logger)
    {
        this.logger = logger;
    }

    public Task SomeFunction()
    {
        logger.Information("Do some function");
        return Task.CompleteTask;
    }
}

我正在使用Microsoft.Extensions.LoggingILogger

这是我在以下位置注册服务的方式Startup.cs

services.Scan(scan => scan
    .FromAssemblyOf<ITestService>()
    .AddClasses(classes => classes
        .Where(t => t.Name.EndsWith("Service")))
    .AsImplementedInterfaces()
    .WithTransientLifetime());

我正在Scrutor使用Scan

这是我的配置Program.cs

WebHost.CreateDefaultBuilder(args)
    .ConfigureServices(services => services.AddAutofac())
    .ConfigureAppConfiguration((context, builder) =>
    {
        builder.SetBasePath(Directory.GetCurrentDirectory())
            .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
            .AddJsonFile($"appsettings.{Environment.MachineName}.json", optional: true, reloadOnChange: true);
    })
    .ConfigureLogging((hostingContext, logging) =>
    {
        logging.AddConfiguration(hostingContext.Configuration.GetSection("Logging"));
        logging.AddConsole();
        logging.AddDebug();
    })
    .UseStartup<Startup>();

作为代码,我尝试使用 logger 调用logger.Information("");,但 logger 没有显示在我的控制台中。

我的代码有什么问题?

对不起我的英语不好。提前致谢

编辑:

差点忘了,这是我的appsettings.json

{
  "Logging": {
    "LogLevel": {
      "Default": "Debug",
      "System": "Information",
      "Microsoft": "Information"
    },
    "Console": {
      "IncludeScopes": "true"
    }
  },
  "AllowedHosts": "*"
}

标签: c#loggingasp.net-core

解决方案



推荐阅读