C#ILogger不';t打印控制台输出
我已经将VS2019用于控制台应用程序(dotnet core 3.1) 该代码:C#ILogger不';t打印控制台输出,c#,printing,console,ilogger,C#,Printing,Console,Ilogger,我已经将VS2019用于控制台应用程序(dotnet core 3.1) 该代码: using Microsoft.Extensions.Logging; class Program { static void Main(string[] args) { var loggerFactory = LoggerFactory.Create(builder => { builder .AddF
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");
}
}
使用Microsoft.Extensions.Logging;
班级计划
{
静态void Main(字符串[]参数)
{
var loggerFactory=loggerFactory.Create(builder=>
{
建设者
.AddFilter(“Microsoft”,LogLevel.Information)
.AddFilter(“系统”,日志级别信息)
.AddFilter(“TestRx.Program”,LogLevel.Information)
.AddConsole();
});
ILogger logger=loggerFactory.CreateLogger();
logger.LogInformation(“示例日志消息”);
}
}
它不会在控制台上打印任何内容,为什么?取决于我的主机,我可以复制,而且您似乎需要处理LoggerFactory以刷新控制台输出 这可能是较新的.NET核心版本的一个性能特性。Afaik旧版直接打印到控制台
using (var loggerFactory = LoggerFactory.Create(builder =>
{ builder.AddConsole(); }) )
{
ILogger logger = loggerFactory.CreateLogger<Program>();
logger.LogInformation("Example log message");
}
使用(var loggerFactory=loggerFactory.Create(builder=>
{builder.AddConsole();})
{
ILogger logger=loggerFactory.CreateLogger();
logger.LogInformation(“示例日志消息”);
}
您可以通过创建大量日志来观察日志记录的异步性质,然后等待一段时间或直接退出程序:
ILogger logger = loggerFactory.CreateLogger<Program>();
for (int i = 0; i < 1000; i++)
{
logger.LogInformation("Example log message2");
}
//Thread.Sleep(1000);
ILogger logger=loggerFactory.CreateLogger();
对于(int i=0;i<1000;i++)
{
logger.LogInformation(“示例日志消息2”);
}
//睡眠(1000);
睡眠将有助于刷新所有日志 刚刚测试并按预期打印:
info:app.Program[0]示例日志消息
。。。
ILogger logger = loggerFactory.CreateLogger<Program>();
for (int i = 0; i < 1000; i++)
{
logger.LogInformation("Example log message2");
}
//Thread.Sleep(1000);