web-dev-qa-db-ja.com

クラスまたはパッケージ全体のロガーを無効にする方法は?

私はApache.commons.loggingを使用しています。今のところSimpleLog実装を使用したいのですが、レベルを変更すると、ライブラリーからのロガーが出てきます。オフにしたいです。パッケージ全体のログレベルを変更する簡単な方法はありますか?
設定しようとしました

org.Apache.commons.logging.simplelog.log.foo = fatal

simplelogプロパティファイルで無効にする(致命的な設定は問題ありません)fooロガーですが、機能しません。 (fooは、出力に表示されるロガーの名前です:[INFO] foo-Message)。

44
Damian

Log4jでは、指定されたパッケージ、クラス、または文字列で識別されるロガーのログレベルを指定できます。これを単にlog4j.propertiesファイルに記述します。

log4j.logger.<your package> = DEBUG|INFO|OFF|WARN...
91
Arek

以下を使用する必要があります。

log4j.logger.foo = OFF

「foo」はパッケージまたはクラスである必要はなく、任意の文字列であることに注意してください。私たちは多くのクラスから呼び出される「SQL」という名前のロガーがあります。

17
Daniel

Spring Bootを使用する場合、application.propertiesファイルでOFFに設定できます。例:

logging.level.org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer=OFF

リファレンス: https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-logging.html#boot-features-custom-log-levels

3
Lee Chee Kiam

Commons LoggingのSimpleLogを使用するには、いくつかのシステムプロパティを使用していない限り、2つの構成ファイルが必要です。ファイルは次のとおりです。commons-logging.propertiesおよびsimplelog.properties。指定したログレベルプロパティは、simplelog.propertiesに次のように配置する必要があります。

org.Apache.commons.logging.simplelog.log.foo=warn

ここで、「foo」はロガー名です。通常、これはパッケージまたはパッケージとクラス名です。次の例では、com.stackoverflow.utilsパッケージの下のすべてがinfoに設定されていますが、com.stackoverflow.servlet.Dispatcherは特にwarn

org.Apache.commons.logging.simplelog.log.com.stackoverflow.utils=info 
org.Apache.commons.logging.simplelog.log.com.stackoverflow.servlet.Dispatcher=warn 

Commons-logging.propertiesファイルには以下が含まれている必要があります。

org.Apache.commons.logging.Log=org.Apache.commons.logging.impl.SimpleLog

ドキュメント here および here

1
jt.