素敵なサムシングを独断と偏見で一方的に紹介するブログ(´・ω・`)

IT

【SpringBoot2】UUIDを自動採番してX-Request-Idとしてlogbackのログに埋め込む方法【MDC】

投稿日: 2019年4月30日
最終更新日:

スポンサーリンク

336×280




サーバーログを漁りやすくしよう

リクエストを特定するIDは重要

APIシステムやWebシステムを開発していると、システム障害や調査のためにログを漁ることは頻繁にあると思います。

その際に、同一リクエスト内のログを絞りこむための情報をあらかじめログのパターンに仕込んでおかないと、他のリクエストのログと混合してしまい厳密な調査が出来ません。

しかし、SpringBootとLogbackを使っていれば、ライブラリを追加する事無くMDCと言う機能を使って簡単にログに独自の値を埋め込む事が可能です。

MDCとは?

MDCとは、Mapped Diagnostic Contextsという機能の事を指し、ログ情報に対して独自の情報を付与して出力する事が可能になります。

実際には、SLF4jの機能ですが、Logback自体もSLF4jの作者が作ったライブラリなので同様の機能が搭載されています。

今回は、Filterで自動採番したUUIDをMDCとしてログパターンに埋め込む方法をご紹介致します♪

手順

Filterの準備

まずは、MDCにUUIDを追加するFilterクラスを用意しましょう。

Configクラスの実装

次に、上記のクラスを@Configurationで適用させましょう。

logbackのパターンを修正

では、実際にlogbackのパターンにFilterクラスで追加したx-request-idを埋め込んでみましょう。

確認

では、実際にサーバーを起動してリクエストを投げてみましょう。

ちなみに、FilterにてMDCを追加しているので、起動ログは以下のように空白となりますので気をつけてください。

[INFO ] [] [2019-04-30 20:11:40.848] [t.b.s.account.AccountApplication] - Started AccountApplication in 2.575 seconds (JVM running for 23.541)

リクエストを投げると以下のようなログが出力されると思います。

念のため、もう一度同じリクエストを投げてみましょう。

正しくUUIDが採番されていますね♪

参考

Spring Boot 2 プログラミング入門

日清 カップヌードル 77g×20個

終わりに

以上のように、少ない実装で簡単にログにX-Request-IDを埋め込む事が出来ました。

Logbackを導入する事でログ周りのカスマイズがとても簡単になるので、皆さんも是非試してみてください。

336×280




336×280




CATEGORIES & TAGS

IT, , , , , , , , , ,

blogenist

Author: blogenist