4

Web API プロジェクトで Serilog.Extras.MSOwin パッケージを使用するデモ/例、または Web API プロジェクトで Serilog を使用する例/チュートリアルを見た人がいるかどうか疑問に思っていました。

どんな助けでも大歓迎です、ジム

4

2 に答える 2

4

これを「Serilog.Extras.MSOwin はどのように使用するのですか?」という質問として取り上げます。現在、ここではかなり小さなライブラリの回答です。

これは現在のライブラリ (1.4.102) を反映しており、将来変更される可能性があります。

Serilog.Extras.MSOwinOWINMicrosoft.Owin.Logging.ILoggerFactoryのロギング インフラストラクチャが 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 が使用できないため、パイプラインの非常に早い段階で登録する必要があります。

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();
于 2014-12-22T22:47:24.507 に答える