我想知道是否有人看过使用带有web api项目的Serilog.Extras.MSOwin包的示例/示例,或者使用Serilog和web api项目的示例/教程。
任何帮助非常感谢, 吉姆
答案 0 :(得分:4)
我将把这个问题作为"我如何使用Serilog.Extras.MSOwin?"鉴于它目前是一个相当小的图书馆答案。
这反映了当前的图书馆(1.4.102),将来可能会发生变化。
Serilog.Extras.MSOwin
提供了两项内容:Microsoft.Owin.Logging.ILoggerFactory
实施,让OWIN的日志记录基础架构写入Serilog(more details about logging in OWIN in this blog post)和Guid
标识符(RequestId) web请求以帮助关联记录的事件。
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();
答案 1 :(得分:0)