ASP.NET Core 6 で Serilog を設定して使用するにはどうすればいいですか? 質問する

ASP.NET Core 6 で Serilog を設定して使用するにはどうすればいいですか? 質問する

Program.cs スタートアップ コードの新しい構造が最近導入されて以来、ドキュメントが少し混乱しています。

公式に提供されたSerilog.AspNetCoreそして、Serilog.Sentry、彼らは.UseSerilog()で使用しますWebHostBuilder。この方法が見つかりません。

私が試したのはこれです:

using Serilog;

var builder = WebApplication.CreateBuilder(args);
// adding services...

builder.Logging.AddSerilog(); // <- is this even necessary?

var app = builder.Build();
app.UseSerilogRequestLogging();

// configure request pipeline
app.Run();

でも、どうすればシンクを構成するたとえば、Debug、Console、Sentry などでしょうか? ドキュメントが少し古くなっているか、私が少し盲目になっているような気がします。

ベストアンサー1

次のパッケージがインストールされていることを確認する必要があります。

  • セリログ
  • Serilog.Extensions.Hosting (これは.UseSerilog拡張メソッドを提供します。Serilog.AspNetCore パッケージがある場合は、これを明示的に含める必要はありません)

次に、次のものが必要になりますusing:

using Serilog;

.UseSerilogこれにより、次の方法でアクセスできるようになりますbuilder.Host:

using Serilog;

var builder = WebApplication.CreateBuilder(args);
builder.Host.UseSerilog();
var app = builder.Build();

app.MapGet("/", () => "Hello World!");

app.Run();

別のオーバーロードを使用して、ホスティング コンテキスト、サービス、および構成を取得できます。そこから、シンクなどを構成できます。

builder.Host.UseSerilog((hostContext, services, configuration) => {
    configuration.WriteTo.Console();
});

おすすめ記事