C# .Net核心控制台应用程序日志记录功能-为什么我的Console.WriteLine出现在开始和结束日志记录之外?
在控制台应用程序的.Net Core日志记录中找到此 这似乎有效,但我不知道为什么我的控制台;显示在开始和结束日志记录消息之外C# .Net核心控制台应用程序日志记录功能-为什么我的Console.WriteLine出现在开始和结束日志记录之外?,c#,.net-core,C#,.net Core,在控制台应用程序的.Net Core日志记录中找到此 这似乎有效,但我不知道为什么我的控制台;显示在开始和结束日志记录消息之外 using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using System; namespace ConsoleApp1 { class Program { static void Main(string[] args)
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using System;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
var services = new ServiceCollection();
ConfigureServices(services);
using (ServiceProvider serviceProvider = services.BuildServiceProvider())
{
MyApplication app = serviceProvider.GetService<MyApplication>();
// Start up logic here
app.Run();
}
}
private static void ConfigureServices(ServiceCollection services)
{
services.AddLogging(configure => configure.AddConsole())
.AddTransient<MyApplication>();
}
}
public class MyApplication
{
private readonly ILogger _logger;
public MyApplication(ILogger<MyApplication> logger)
{
_logger = logger;
}
internal void Run()
{
_logger.LogInformation("Application Started at {dateTime}", DateTime.UtcNow);
//Business Logic START
Console.WriteLine("Doing stuff");
//Business logic END
_logger.LogInformation("Application Ended at {dateTime}", DateTime.UtcNow);
}
}
}
因为Microsoft.Extensions.Logging.Console中的类将消息排入队列
它最终被处理并通过一个线程在后台打印到控制台
Console.WriteLine直接写入控制台。什么是ILogger?在记录器执行任何操作之前,Console.WriteLine是第一位的。@Rod:如果您的问题已经解决,请记住。