gpt4 book ai didi

C# ILogger 不打印控制台输出

转载 作者:行者123 更新时间:2023-12-04 10:26:58 36 4
gpt4 key购买 nike

我已经将 vs 2019 用于控制台应用程序(dotnet core 3.1),

Install-Package Microsoft.Extensions.Logging.Console -Version 3.1.2 

和这个代码:
using Microsoft.Extensions.Logging;
class Program
{
static void Main(string[] args)
{
var loggerFactory = LoggerFactory.Create(builder =>
{
builder
.AddFilter("Microsoft", LogLevel.Information)
.AddFilter("System", LogLevel.Information)
.AddFilter("TestRx.Program", LogLevel.Information)
.AddConsole();
});
ILogger logger = loggerFactory.CreateLogger<Program>();
logger.LogInformation("Example log message");
}
}

它不会在控制台上打印任何内容,为什么?

最佳答案

根据我的托管,我可以重现,看来您需要处理 LoggerFactory 以刷新控制台输出。

这可能是较新的 .NET Core 版本的性能特性。 Afaik 旧的直接将其打印到控制台。

using (var loggerFactory = LoggerFactory.Create(builder =>
{ builder.AddConsole(); }) )

{
ILogger logger = loggerFactory.CreateLogger<Program>();
logger.LogInformation("Example log message");

}

您可以通过创建大量日志来观察日志记录的这种异步性质,然后稍等片刻或直接退出程序:
ILogger logger = loggerFactory.CreateLogger<Program>();
for (int i = 0; i < 1000; i++)
{
logger.LogInformation("Example log message2");
}
//Thread.Sleep(1000);

sleep 将有助于刷新所有日志!

关于C# ILogger 不打印控制台输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60599276/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com