gpt4 book ai didi

c# - 在 ASP.NET Core 2 日志记录更新后将 ILogger 映射到 Serilog 的记录器

转载 作者:太空狗 更新时间:2023-10-29 19:38:27 24 4
gpt4 key购买 nike

来自 @nblumhardtpost :

You can then go ahead and delete any other logger configuration that’s hanging around: there’s no need for a "Logging" section in appsettings.json, no AddLogging() anywhere, and no configuration through ILoggerFactory in Startup.cs.

在我的 Controller 中使用 Serilog;ILogger 时出现异常。

private readonly ILogger _logger;

public CustomersController(ILogger logger)
{
_logger = logger;
}

结果:

An unhandled exception occurred while processing the request.
InvalidOperationException: Unable to resolve service for type 'Serilog.ILogger' while attempting to activate 'Customers.Api.Controllers.CustomersController'.

我是否仍需要在 Startup.ConfigureServices() 方法中向 DI 提供一些信息?

据我所知,我的程序类遵循帖子中的说明。

public class Program
{
public static void Main(string[] args)
{
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Debug()
.MinimumLevel.Override("Microsoft", LogEventLevel.Information)
.Enrich.FromLogContext()
.WriteTo.Console()
.CreateLogger();

BuildWebHost(args).Run();
}

public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.UseSerilog()
.Build();
}

最佳答案

ILogger logger 更改预期类型至 ILogger<CustomersController>记录器:

private readonly ILogger _logger;

public CustomersController(ILogger<CustomersController> logger)
{
_logger = logger;
}

关于c# - 在 ASP.NET Core 2 日志记录更新后将 ILogger 映射到 Serilog 的记录器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45954992/

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