3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ASP.NET Coreでとりあえず追加で入れるログ関連のパッケージ

Last updated at Posted at 2020-12-25

はじめに

新しくプロジェクトを作ったときに、Serilogのどのパッケージを入れればよいんだっけ?と他のプロジェクトを参考することが多いので、個人的追加するパッケージの一覧をまとめておきます。

プロジェクトの種類ごとに入れるべきパッケージ

ASP.NET Core以外のプロジェクトの場合はこのあたりですね。

  • Serilog.Extensions.Hosting
  • Serilog.Settings.Configuration
  • Serilog.Sinks.Console
  • Serilog.Sinks.Debug
  • Serilog.Exceptions

ASP.NET CoreであればSerilog.AspNetCoreが必要なパッケージをだいたい持っているので、下記の2つがあれば事足ります。

  • Serilog.AspNetCore
  • Serilog.Exceptions

Enricher

LogContextに特定の情報を付与するための拡張です。環境変数やプロセス、スレッド情報などは標準で用意されています。自前でEnricherを作る場合はこちらも参照してください。

ASP.NET Coreの場合はSerilog.AspNetCoreが良い感じに属性を付与してくれるのであまり使わないのですが、コンソールプロジェクトの場合は下記のEnricherも検討したいですね。

パッケージ名 概要 含まれるEnricer
Serilog.Enrichers.Environment 環境変数のHOSTNAME、USERNAMEなどの情報をログに付与します。 WithMachineName, WithEnvironmentUserName
Serilog.Enrichers.Thread 現在のスレッド情報をログに付与します。 WithThreadId, WithThreadName
Serilog.Enrichers.Process 現在のプロセス情報をログに付与します。 WithProcessId, WithProcessName

Sink

ログイベントを指定する拡張です。コンテナ環境であれば単にConsoleに吐き出してコンテナ環境が提供するログドライバーでログを吸い上げればよいと思いますが、フィルターと組み合わせてこのログの場合だけコンソール以外にでフックさせたいといった場合にも利用できます。

パッケージ名 概要
Serilog.Sinks.Console ログイベントをコンソールに出力するための拡張です。
Serilog.Sinks.File ログイベントをファイルに出力するための拡張です。
Serilog.Sinks.Debug ログイベントをVisual Studioのデバックコンソールに出力するための拡張です。
Serilog.Sinks.Trace ログイベントをSystem.Diagnostics.Traceに出力するための拡張です。 
Serilog.Sinks.Http ログイベントを特定のWebサイトにPOSTするための拡張です。
Serilog.Sinks.Email ログイベントを特定のメールアドレスに送信するための拡張です。

他にもこんなサービスへのSink用パッケージが公開されています。

まとめ

ASP.NET Coreであればとりあえずこの2つを入れておけばOK

  • Serilog.AspNetCore
  • Serilog.Exceptions
3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?