log4jに支えられたSLF4jをロギングフレームワークとして使用しています。私の問題は、実行時にロガーのログ レベルを変更する方法を探していることです。
私は、slf4j が独自の API を介して直接これを許可していないことを理解しています。そのため、ロギング プロバイダーに直接アクセスする必要があります。個人的には、これが slf4j の大きな欠点だと思います。私の質問は、slf4j を使用してどのプロバイダーを使用しているかをプログラムで判断するにはどうすればよいですか? slf4j を使用する最大の目的は、プロバイダーにとらわれないようにすることです。何も再コーディングすることなく、お気に入りのログ システムを簡単に切り替えることができます。しかし、今、log4j を直接呼び出さなければならない場合、その能力が失われています。
少なくとも、log4j をプロバイダーとして使用しているかどうかを判断し、使用している場合は、ユーザーがログ レベルを切り替えられるようにしたいと考えています。
もしそうなら LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME)
、結果はのインスタンスでorg.slf4j.impl.Log4jLoggerAdapter
あり、偶数ではありませんorg.apache.log4j.Logger
(私が望んでいた/期待していたように)。
これを見つける方法はありますか?
ありがとう、エリック