gpt4 book ai didi

asp.net-core - .net core 2.2如何登录Program.Main?

转载 作者:行者123 更新时间:2023-12-05 07:26:27 27 4
gpt4 key购买 nike

以前我可以使用 LoggerFactory 但现在它被标记为已过时。如何访问 ILoggingBuilder 并在 Main 方法的开头创建记录器实例?我想使用内置记录器而不是任何第 3 方日志记录库。

最佳答案

要得到你想要的,你必须编辑 CreateWebHostBuilder 方法:

public static IWebHost CreateWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.ConfigureLogging(logging =>
{
logging.ClearProviders();
logging.AddConsole(); // Or any other provider
}).Build();

现在这个方法返回带有配置日志记录的主机。现在您可以从主机的服务中获取 ILogger-Service:

public static void Main(string[] args)
{
var host = CreateWebHost(args);
try
{
var logger = host.Services.GetRequiredService<ILogger<Program>>();
logger.LogInformation("Called from Main");
host.Run();
}
catch (Exception)
{
// do something
}
}

要在 Startup 中使用 Logging,您仍然可以使用 ILoggerFactory:

private ILoggerFactory _loggerFactory;
public Startup(IConfiguration configuration, ILoggerFactory loggerFactory)
{
Configuration = configuration;
_loggerFactory = loggerFactory;
}
public IConfiguration Configuration { get; }
public void ConfigureServices(IServiceCollection services)
{
try
{
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
}
catch (Exception ex)
{
var logger = _loggerFactory.CreateLogger("Startup");
// log
throw;
}
}

这里是 logging 的额外资源和 app startup在 asp.net 核心 2.2 中。

关于asp.net-core - .net core 2.2如何登录Program.Main?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54290708/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com