gpt4 book ai didi

c# - 无法解析类型 'Serilog.ILogger' : "AspNetCore.Serilog.RequestLoggingMiddleware" 的服务

转载 作者:太空宇宙 更新时间:2023-11-03 12:00:00 27 4
gpt4 key购买 nike

我是编程新手,我正在尝试为 .net 核心项目实现日志记录解决方案。

我想收集默认和 Microsoft 类别日志。

应用设置.JSON

      {
"Serilog": {
"MinimumLevel": {
"Default": "Information",
"System": "Warning",
"Microsoft": "Information"
},
"File": {
"location": "logs/timeapi.log"
}
},
"EnableSwagger": true
}

程序.CS

 public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.UseSerilogRequestLogging();

启动.CS

app.UseSerilogRequestLogging(options =>
options.RequestProjection =
r => new { r.IsHttps, QueryString = r.QueryString.Value });
app.UseMvc();
https://github.com/mthamil/AspNetCore.Serilog.RequestLoggingMiddleware

我得到的错误是:

Unable to resolve service for type 'Serilog.ILogger' while attempting to activate 'AspNetCore.Serilog.RequestLoggingMiddleware.SerilogRequestMiddleware'.

最佳答案

您正在使用的中间件似乎需要在应用程序的 Startup.ConfigureServices() method 中添加 Serilog 的 ILogger ;例如:

    public void ConfigureServices(IServiceCollection services)
{
services.AddSingleton<ILogger>(Log.Logger);
}

(此示例假设您正在配置 Serilog 的 Log.Logger 静态属性。)

Serilog.AspNetCore package 的自述文件中有一个更完整的使用 Serilog 设置请求日志记录的示例。 ,尽管它的 UseSerilogRequestLogging() 实现完全不同。

关于c# - 无法解析类型 'Serilog.ILogger' : "AspNetCore.Serilog.RequestLoggingMiddleware" 的服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57470972/

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