我想知道是否有人看过将 Serilog.Extras.MSOwin 包与 web api 项目一起使用的演示/示例,或者将 Serilog 与 web api 项目一起使用的示例/教程。
非常感谢任何帮助,吉姆
我想知道是否有人看过将 Serilog.Extras.MSOwin 包与 web api 项目一起使用的演示/示例,或者将 Serilog 与 web api 项目一起使用的示例/教程。
非常感谢任何帮助,吉姆
我将把这个问题当作“我如何使用 Serilog.Extras.MSOwin?” 鉴于它目前是一个相当小的图书馆答案。
这反映了当前的库 (1.4.102),未来可能会发生变化。
Serilog.Extras.MSOwin
提供了两件事:Microsoft.Owin.Logging.ILoggerFactory
让 OWIN 的日志基础设施写入 Serilog 的实现(有关在此博客文章中登录 OWIN 的更多详细信息)和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。
您还需要使用从 LogContext 检索它Enrich.FromLogContext()
并将该属性添加到您写入接收器的内容中。例如,
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();
Serilog.Extras.MSOwin
被取代(SerilogWeb.Owin
此后也已停产。)