C# ILogger 不打印控制台输出
C# ILogger doesn't print console output
我将 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();
});
var 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);
睡眠将有助于刷新所有日志!
我将 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();
});
var 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);
睡眠将有助于刷新所有日志!