Tro*_*yvs 9 c# printing console ilogger
我使用 vs 2019 作为控制台应用程序(dotnet core 3.1),
Install-Package Microsoft.Extensions.Logging.Console -Version 3.1.2
Run Code Online (Sandbox Code Playgroud)
和这段代码:
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");
}
}
Run Code Online (Sandbox Code Playgroud)
它在控制台上没有打印任何内容,为什么?
Fal*_*der 10
根据我的托管,我可以重现,似乎您需要处理 LoggerFactory 来刷新控制台输出。
这可能是较新的 .NET Core 版本的性能特性。Afaik 老的直接将其打印到控制台。
using var loggerFactory = LoggerFactory.Create(builder =>
{
builder.AddConsole();
});
var logger = loggerFactory.CreateLogger<Program>();
logger.LogInformation("Example log message");
Run Code Online (Sandbox Code Playgroud)
您可以通过创建大量日志来观察日志记录的异步性质,然后稍等一下或直接退出程序:
ILogger logger = loggerFactory.CreateLogger<Program>();
for (int i = 0; i < 1000; i++)
{
logger.LogInformation("Example log message2");
}
//Thread.Sleep(1000);
Run Code Online (Sandbox Code Playgroud)
睡眠将有助于刷新所有日志!
| 归档时间: |
|
| 查看次数: |
10827 次 |
| 最近记录: |