3
4

More than 3 years have passed since last update.

SLF4Jとは?

Last updated at Posted at 2020-10-19

【背景】

エラーでつまづきそもそも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)

Frequently Asked Questions about SLF4J

javaでのFacadeパターン

3
4
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
4