SpringBoot 2.x系+actuatorでHTTP経由でログレベルを動的に切り替える
概要
このエントリでは、Spring Boot 2.x系を使っているときに、Spring Boot Actuatorで、ログレベルを動的に変更する方法を確認します。
準備
Actuatorを使う
build.gradle
dependencies {
(中略)
implementation 'org.springframework.boot:spring-boot-starter-actuator'
Actuatorの設定
application.yaml
management:
endpoints.web.exposure.include: loggers
endpoint.loggers.enabled: true
確認
ここでは、Spring Frameowrk全体のログレベルを変更します。
開発時や動作確認時などに、一時的にログを出したい場合などを想定しています。
起動直後
Actuatorが公開しているURLにアクセスすることで、現在の状態を確認できます。
下図は、別エントリ「SpringBootとH2 DBとJPA RESTで、郵便番号をREST APIで検索してみる~作るクラスは3つだけ~」で作ったものに、上記の設定を加えて起動した直後、http://localhost:8080/actuator/loggers にアクセスしたものです。(ブラウザの機能で、JSONをきれいに表示されています)
このエンドポイントに、POSTで異なるログレベルを送信します。下記では、curlコマンドを使っています。
curl -i -X POST -H 'Content-Type: application/json'\
-d '{"configuredLevel": "TRACE"}'\
http://localhost:8080/actuator/loggers/org.springframework
コンソールで確認すると、ログレベル変更後、TRACEレベルのログが出力されています。下図は、IntelliJ IDEAでgradle bootRunしているコンソールの様子です。
おわりに
本エントリでは、タイトルに示した内容を確認しました。
開発時など、ログを一時的に沢山出力したくなる時に便利だと思います。
ログレベルを切り替える方法は、本エントリのほかにもあり、例えばlogbackの設定ファイル変更のウォッチ機能を使っても実現できます。
本エントリの方法は、POST一発で変更できるという点でお手軽だと思います。
今回のエントリに関係するコードは、このPRで確認できます。
Author And Source
この問題について(SpringBoot 2.x系+actuatorでHTTP経由でログレベルを動的に切り替える), 我々は、より多くの情報をここで見つけました https://qiita.com/hrkt/items/26d612d2bb67c8185758著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .