任何使用Serilog.Extras.MSOwin的人

时间:2014-08-15 15:19:44

标签: asp.net-web-api serilog

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

任何帮助非常感谢, 吉姆

2 个答案:

答案 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)

was supersededSerilog.Extras.MSOwin SerilogWeb.Owin(此后也已停止使用。)