gpt4 book ai didi

asp.net-core - 如何使用 Seq sink 配置 Serilog aspnetcore?

转载 作者:行者123 更新时间:2023-12-05 06:19:04 29 4
gpt4 key购买 nike

我无法从我的 IIS 托管的 .net core 2.2 应用程序中获取 Seq 中的日志语句。当我使用 IISExpres 调试和运行应用程序时,会出现日志。但是,当应用程序从真实 IIS 的应用程序池运行时,只有 RequestLogging 日志显示在 Seq 中。我想念我的日志。

这是我所做的:

  1. 安装了 Nuget 包 Serilog、Serilog.Aspnetcore 和 Serilog.Sinks.Seq。

  2. 删除了所有 Microsoft.Extensions.Logging 和引用。

  3. 按照 Serilog.Aspnetcore Github 页面上的示例在 Program.cs 中实现内联配置:

public class Program
{
...

public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.UseSerilog((hostingContext, loggerConfiguration) =>
loggerConfiguration.ReadFrom.Configuration(hostingContext.Configuration)
, preserveStaticLogger: true, writeToProviders: false);


}
  1. 在 Startup.cs 中添加了请求日志:
        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
....

app.UseHttpsRedirection();
app.UseSerilogRequestLogging();
app.UseMvc();
}
  1. 在 appsettings.json 中配置了 Serilog,因此 apiKey 和 Seq serverUrl 可在 Azure DevOps 部署中针对开发、测试和生产环境进行配置:
{
"Serilog": {
"Using": [ "Serilog.Sinks.Seq" ],
"MinimumLevel": {
"Default": "Debug",
"Override": {
"Microsoft": "Warning",
"System": "Warning"
}
},
"Enrich": [ "FromLogContext" ],
"WriteTo": [
{
"Name": "Seq",
"Args": {
"apiKey": "iVPcw1...",
"serverUrl": "http://localhost:5341"
}
}
]
},
...
}
  1. 像往常一样在类中添加记录器和初始化:
     public class SomeService : ISomeService
{
private readonly ILogger logger;
...

public SomeService( ...injections...) {

logger = Log.ForContext<SomeService>();
...
}

...
public async Task ServiceMethod(Data d)
{
logger.Information("ServiceMethod called with {@d}");
}

...
}

最佳答案

UseSerilog() 的参数中,您有:

preserveStaticLogger: true

这指示 UseSerilog() 不设置/修改静态 Log.Logger 实例,这意味着当您在以下情况下使用它时:

logger = Log.ForContext<SomeService>();

您将获得默认的、未配置的、什么都不做的记录器。

设置 preserveStaticLogger: false 应该可以解决这个问题。

关于asp.net-core - 如何使用 Seq sink 配置 Serilog aspnetcore?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60986886/

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