gpt4 book ai didi

asp.net-web-api - 任何使用 Serilog.Extras.MSOwin 的人

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

我想知道是否有人看过在 web api 项目中使用 Serilog.Extras.MSOwin 包的演示/示例或在 web api 项目中使用 Serilog 的示例/教程。

非常感谢任何帮助,
吉姆

最佳答案

我将这个问题视为“我如何使用 Serilog.Extras.MSOwin?”鉴于它目前是一个相当小的图书馆答案。

这反射(reflect)了当前的库 (1.4.102),将来可能会发生变化。
Serilog.Extras.MSOwin提供了两个东西:一个 Microsoft.Owin.Logging.ILoggerFactory让 OWIN 的日志记录基础结构写入 Serilog ( more details about logging in OWIN in this blog post ) 和 Guid 的实现每个 Web 请求的标识符 (RequestId) 以帮助关联记录的事件。

Logging 集成通过以下方式完成:

IAppBuilder app = ...;
Serilog.ILogger logger = ...'
app.SetLoggerFactory( new Serilog.Extras.MSOwin.LoggerFactory( logger ) );

请求 id 功能需要在 OWIN 管道中注册:

IAppBuilder app = ...;
app.UseSerilogRequestContext("RequestId");

您将希望在管道中尽早注册,因为在该管道步骤之前发生的任何日志记录都没有可用的请求 ID。

您还需要使用 Enrich.FromLogContext() 从 LogContext 中检索它。并将该属性添加到您写入接收器的内容中。例如,

const string DefaultOutputTemplate =
"{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} ({RequestId}) {Message}{NewLine}{Exception}";

ILogger logger =
new LoggerConfiguration().Enrich.FromLogContext()
.WriteTo
.RollingFile(
"log.txt",
outputTemplate: DefaultOutputTemplate)
.CreateLogger();

关于asp.net-web-api - 任何使用 Serilog.Extras.MSOwin 的人,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25329158/

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