【发布时间】:2018-01-28 15:06:00
【问题描述】:
升级到 .NET Core 2.0 (+ASP.NET Core 2.0) 后,我似乎无法获得输出的 Trace 级别日志信息。
事实上,如果我执行 dotnet new webproject 并在 Startup for Configure 中添加以下代码,我不会收到任何跟踪或调试日志消息,但我会收到两次信息和错误消息。注释掉.AddConsole()call 只会输出这些(信息和错误)一次——这表明它默认使用控制台提供程序自动配置。请记住,这是一个“文件 -> 新建”项目体验,Program.cs 中没有任何设置用于记录或配置 - 除了我添加的内容。有人看过东西吗?或者我应该为它注册一个 GitHub 问题。
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
loggerFactory.AddConsole(Microsoft.Extensions.Logging.LogLevel.Trace);
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.Run(async (context) =>
{
var logger = loggerFactory.CreateLogger("Blah");
logger.LogTrace("Hello world : Trace");
logger.LogDebug("Hello world : Debug");
logger.LogInformation("Hello world : Information");
logger.LogError("Hello world : Error");
await context.Response.WriteAsync("Hello World!");
});
}
【问题讨论】:
-
will give me them once你这是什么意思? -
已编辑;我得到两次 Info 和 Error - 但如果我取出 AddConsole() 行 - 我得到一次 Info 和 Error - 但没有 Trace 或 Debug 消息,而我们没有明确的行来说明控制台和 Trace 级别。
-
你在开发吗?现在默认环境是生产环境..你可以试试
set ASPNETCORE_ENVIRONMENT=Development; dotnet run -
我遇到了类似的问题。在日志语句后添加
await Task.Delay(1)让控制台显示日志。如果将其取出,则控制台上仅显示部分日志。接受的答案实际上并没有做任何事情。这似乎是一个线程问题。
标签: c# .net asp.net-core .net-core