2016-12-06 19 views
2

私はWeb asp.net MVCアプリケーションIdentityServer3を使用しています。 ログを別のシンクに分割したい。 をTraceに、EventLog("IdentityServer3")に、SerilogWeb.Classic.EnrichersをデータベースMSSqlServerに書きたいと思います。Serilog LoggerConfigurationは別のシンクへのコンテキストでの書き込み

私の構成は次のとおりです。

Log.Logger = new LoggerConfiguration() 
       .WriteTo.Trace() 
       .WriteTo.EventLog("IdentityServer3") 
       .Enrich.FromLogContext() 
       //all after this i want to write in database 
       .WriteTo.MSSqlServer("connectionString", "Log") 
       .Enrich.With(new HttpRequestIdEnricher()) 
       .Enrich.With(new HttpRequestRawUrlEnricher()) 
       .Enrich.With(new HttpRequestUserAgentEnricher()) 
       .Enrich.With(new UserNameEnricher()) 
       .CreateLogger(); 

答えて

3

WriteTo.Logger()Filterディレクティブを使用し、シンクにイベントのサブセットを書き込むに。どちらの場合も同様です。ここでアイデンティティ・サーバー1です:

Log.Logger = new LoggerConfiguration() 
    .WriteTo.Logger(lc => lc 
     .Filter.ByIncludingOnly(Matching.FromSource("IdentityServer3")) 
     .WriteTo.Trace() 
     .WriteTo.EventLog("IdentityServer3")) 
    // <snip> 

あなたは、彼らがすべてのイベントを豊かにするように、いずれかの最も外側のレベルでenrichersを適用する、またはネストされたロガーのいずれかの構成にすることができます。

関連する問題