6

パスに slf4j.jar を含む組み込みの Jetty 9 を使用しています。デフォルトでは、jetty は大量の情報をログに記録します。

ログを無効にするか、少なくともログ レベルを INFO に変更したいと考えています。プログラムでこれを行うにはどうすればよいですか (つまり、xml 構成ファイルを配置せずに)。

4

1 に答える 1

13

slf4j は単なるログ ファサード/ルーティング API であるため、単純な slf4j を使用してロガーレベルを設定する方法はありません。

名前空間「org.eclipse.jetty」のロギングレベルを設定するには、基礎となるロギング実装に依存する必要があります。

  • slf4j-simple.jar とSimpleLoggerを使用している場合、プログラムでレベルを設定することはできません。SimpleLogger が初期化されると、システム プロパティを介してのみ設定できます。これは JVM の非常に初期の段階です。

  • slf4j-log4j.jar を使用する場合は、Log4j 固有の手法を使用してください。

org.apache.log4j.LogManager.getLogger("org.eclipse.jetty").setLevel(Level.WARN);
  • slf4j-jdk14.jar を使用している場合は、java.util.logging 手法を使用してください。
java.util.logging.LoggerFactory.getLogger("org.eclipse.jetty").setLevel(Level.WARNING);
final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger("org.eclipse.jetty");
if (!(logger instanceof ch.qos.logback.classic.Logger)) {
    return;
}
ch.qos.logback.classic.Logger logbackLogger = (ch.qos.logback.classic.Logger) logger;
logbackLogger.setLevel(ch.qos.logback.classic.Level.WARN);
于 2012-12-17T18:46:16.023 に答える