使用控制台记录器的控制台应用程序不会写入最终消息。容易复制

问题描述 投票:0回答:0

.net 6 控制台应用程序在 Windows 上使用 LoggerFactory - 最终消息不会出现在控制台上。 loggerFactory.Dispose() 没有帮助。 Ilogger 没有 Dispose() 方法。

这是一个复制品。出现大约 20 到 70 条循环消息。在那之后,什么都没有。

using var loggerFactory = LoggerFactory.Create(builder =>
{
    builder
        .AddFilter("Microsoft", LogLevel.Warning)
        .AddFilter("System", LogLevel.Warning)
        .AddFilter("MyTestApp.Program", LogLevel.Debug)
        .AddConsole();
});
ILogger logger = loggerFactory.CreateLogger<Program>();
try
{ 
    logger.LogInformation("Starting");
    for (var i=0; i < 100; i++)
    {
        logger.LogInformation($"This is a nice long message for {i}.");
    }
    throw new Exception("boom");
}
catch (Exception e)
{
    logger.LogInformation(e.ToString());
}
finally
{
    loggerFactory.Dispose();
}

.net-core logging flush
© www.soinside.com 2019 - 2024. All rights reserved.