パスに slf4j.jar を含む組み込みの Jetty 9 を使用しています。デフォルトでは、jetty は大量の情報をログに記録します。
ログを無効にするか、少なくともログ レベルを INFO に変更したいと考えています。プログラムでこれを行うにはどうすればよいですか (つまり、xml 構成ファイルを配置せずに)。
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);
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);