【背景】
エラーでつまづきそもそもSLF4Jとは何だ?
という所から調べてみた。
【エラー文】
java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
##SLF4Jとは?
SLF4Jは、ロギングシステム用のシンプルなファサードであり、エンドユーザーが展開時に目的のロギングシステムをプラグインできるようにします。
##ファサードとは?
Facadeクラスとは、使い方が複雑になっているクラス群をまとめ、使いやすい形のインターフェースとして外部に提供するクラスのことを指します。
デザインパターンでは、このFacadeクラスを利用するパターンをFacadeパターンと呼びます。
(ちなみに、Facadeは「窓口」を意味する単語です)
【直訳】
Simple Logging Facade for Java (SLF4J) は、様々なロギングフレームワーク (java.util.logging, logback, log4j など) のためのシンプルなファサードまたは抽象化として機能し、
エンドユーザがデプロイ時に希望するロギングフレームワークをプラグインすることを可能にする。
ライブラリをSLF4Jで有効にすることは、単一の必須の依存関係、
すなわちslf4j-api.jarを追加することを意味することに注意してください。
もしクラスパスにバインディングが見つからない場合、SLF4J はデフォルトで動作しない実装になります。
JavaソースファイルをSLF4Jに移行したい場合は、
数分でSLF4J APIを使用するようにプロジェクトを移行できるマイグレータツールを検討してください。
あなたが依存している外部的に保守されているコンポーネントがSLF4J以外のロギングAPIを使用している場合、commons logging、log4j、java.util.loggingのように、レガシーAPIのためのSLF4Jのバイナリサポートを見てみてください。
※注意点
クラスパスにバインディングが見つからない場合、SLF4J はデフォルトで動作しない実装になる。
##まとめ
##参考にした記事(いつもありがとうございます。)
SLF4J、Logback、Log4Jの関係を挙動とともに整理する
Simple Logging Facade for Java (SLF4J)