■Spring Boot の小径 第4歩 Spring Boot 匍匐前進 |
4-4)ロギング |
Spring Bootの基本的なところはだいたい理解できたので、 いよいよ MybatisによるDB連携に突入しようかなぁ。 と思ったのですが、ちょっと気が変わりました。 それも悪くはないのですが、その前にロギング手段をきちんと確立しておこうと思います。 ■SpringMVC の小径 ちょっと寄り道 ロギングの小径で、 Log4j2 によるログクラスの実装と、AOPによるロギングの魔術をご紹介しましたが、 Spring Boot ではこのあたりをどう扱うか、きちんと実装しておかないと後々苦労することになるので、 Mybatisはも少し後の楽しみにとっておいて、ログの実装について説明したいと思います。 とか、もったい付けてしまいましたが、 実のところは、■SpringMVC の小径 ちょっと寄り道 ロギングの小径 で作ったログクラスを 丸ごと、そのまま使います。 src/main/java/jp/dip/arimodoki/common/MyLog4J.java src/main/java/jp/dip/arimodoki/common/LogAspect.java の二つは、パッケージ階層もまったく変わらないので、コピー&ペーストしただけです。 以前のLog4j2設定ファイル:WebContent/WEB-INF/classes/log4j2.xml については、中身の変更はありませんが、配置場所だけ src/main/resources/log4j2.xml に変更されています。 ただ、実際に動くまでに少しはまった部分があるので、記録しておきます。 まず、Spring Boot のログ実装は、デフォルトでLogbackが使用されているそうです。 何も考えないで、Log4j2 のプラグインをbuild.gradleに設定しても、 Logbackの方が優先して動いてしまうようで、期待したログ出力ができませんでした。 Logbackから、Log4j2 に切り替える解決策としては、 build.gradleのスクリプトを調整することでうまく Log4j2のログを出すことができました。 |
今回修正した、ビルドスクリプトを載せておきますので、参考にしてください。 build.gradle ソースの中に直接コメントを入れてありますので、参考にしてください。 上半分ぐらいは、最初のプロジェクト作成時のまま変わっていません。 中央あたりの、dependencies ブロックに苦労した後が見て取れると思います。 簡単に説明しておくと、Sprong Boot の標準的なライブラリは、だいたいほとんど Logbackライブラリの依存関係を持っているようなので、[ ] でまとめて定義して、 exclude moduleで、依存をはずしたいモジュールを記述すれば思い通りに行くようです。 で、あとは自分で使いたいLog4j2 のライブラリを追加すれば問題解決です。 ここでは、Log4J2の設定に、XMLファイルを使っており、 Spring Boot の理念(?)である、XML の排除という点からは若干外れてしまいますが、 これぐらいは、まぁ良しとしましょう。 どうしても、XMLが嫌な人は、src/main/resources/application.yml とかいうファイルに、 大昔の、log4j.properties ファイルみたいな記述で行けるらしいので、 どうぞ、やってみてください。 |
4-3)Singletonの悪魔 ![]() |
4-4)ロギング |
![]() |