【发布时间】:2018-12-21 04:44:40
【问题描述】:
正如标题所说,当我使用dotnet run 运行应用程序时,为什么我的 Logger 没有显示在控制台中
不过,我在 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;
}
}
我正在为 ILogger 使用 Microsoft.Extensions.Logging
这是我在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.Information(""); 调用记录器,但记录器没有显示在我的控制台中。
我的代码有什么问题?
对不起我的英语。提前致谢
编辑:
差点忘了,这是我的appsettings.json:
{
"Logging": {
"LogLevel": {
"Default": "Debug",
"System": "Information",
"Microsoft": "Information"
},
"Console": {
"IncludeScopes": "true"
}
},
"AllowedHosts": "*"
}
【问题讨论】:
-
对于
Microsoft.Extensions.Logging,没有Information,有LogInformation,Task.CompleteTask应该是Task.CompletedTask。我无法用LoggingCore 重现您的问题。是否有任何演示可以重现您的问题?
标签: c# logging asp.net-core