gpt4 book ai didi

c# - Serilog 依赖注入(inject)

转载 作者:行者123 更新时间:2023-12-04 08:46:39 24 4
gpt4 key购买 nike

我正在尝试将 Serilog 依赖注入(inject)到我在 .Net Core 3.1 中的 WebAPI 项目中的所有项目中。
在我的 startup.cs 中,我正在设置 serilog,但可能不正确:
我有:using Serilog;然后在:public void ConfigureServices(IServiceCollection services) , 我有:services.AddSingleton(Log.Logger);我也有:

            var configuration = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json")
.AddJsonFile($"appsettings.Development.json", optional: true, reloadOnChange: true)
.Build();

Log.Logger = new LoggerConfiguration()
.ReadFrom.Configuration(configuration)
.CreateLogger();
这在我的 Controller 类中,我做通常的: using Microsoft.Extensions.Logging; private readonly ILogger _log;
public AuthorisationController(IConfiguration config, ISecurityService securityService, ILogger<AuthorisationController> log)
{
Configuration = config;
_securityService = securityService;
_log = log;
}
Config 和 SecurityService 都可以。
但在我的第一种方法中,我尝试记录: _log.LogInformation("Login attempt");但是我的日志中什么也没有出现。
任何人都可以发现错误吗?
没关系,但我的 appsettings 有这个:
    "MinimumLevel": "Debug",
"WriteTo": [
{
"Name": "Console",
"Args": {
"outputTemplate": "===> {Timestamp:HH:mm:ss.fff zzz} [{Level}] {Message}{NewLine}{Exception}"
}
},
{
"Name": "Loggly",
"Args": {
"customerToken": "MySuperSecretKey"
}
}
]
}```

最佳答案

您还没有发布任何日志记录配置代码,所以我认为它丢失了。有几个包将 Serilog 与 Logging 扩展集成在一起,一些使用通用主机,一些添加特定于 ASP.NET Core 的扩展。
一种选择是使用 Serilog.AspNetCore .创建记录器后,您可以将其与主机构建器本身一起使用:

public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.UseSerilog() // <-- Add this line
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
这将为应用程序和主机构建过程使用静态记录器

关于c# - Serilog 依赖注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64280467/

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