Jettyの使い方2

2019年5月15日

jettyについての全投稿は/tag/jettyにあるので参照されたい

Jettyの使い方1の続きである。

ここでは組み込みでJettyを使うことを前提としている。次に気になるのはJettyのログだ。
デフォルトでは標準エラーに出力しているのだが、これを組み込み先で使用しているロガーに吐き出すか、あるいは無効にする。

Chapter 11. Jetty Loggingを見てみると、いろいろと面倒そうなことが書いてあるのだが、ほとんどすべて無視してよい。

単に適当なクラスを作成し、その名前をorg.eclipse.jetty.util.log.classプロパティに入れておくだけである。

ここではとりあえず、Jettyのログ出力をすべて禁止することにする。大したことはやらせてないので。

何もしないロガーを作る

org.eclipse.jetty.util.log.loggerを実装した適当なクラスを作成する。

import org.eclipse.jetty.util.log.*;

public class NoLogger implements Logger {

  public NoLogger() {
    // TODO Auto-generated constructor stub
  }

  @Override
  public String getName() {
    return "nothing";
  }

  @Override
  public void warn(String msg, Object... args) {
    // TODO Auto-generated method stub

  }

  @Override
  public void warn(Throwable thrown) {
    // TODO Auto-generated method stub

  }

  @Override
  public void warn(String msg, Throwable thrown) {
    // TODO Auto-generated method stub

  }

  @Override
  public void info(String msg, Object... args) {
    // TODO Auto-generated method stub

  }

  @Override
  public void info(Throwable thrown) {
    // TODO Auto-generated method stub

  }

  @Override
  public void info(String msg, Throwable thrown) {
    // TODO Auto-generated method stub

  }

  @Override
  public boolean isDebugEnabled() {
    // TODO Auto-generated method stub
    return false;
  }

  @Override
  public void setDebugEnabled(boolean enabled) {
    // TODO Auto-generated method stub

  }

  @Override
  public void debug(String msg, Object... args) {
    // TODO Auto-generated method stub

  }

  @Override
  public void debug(Throwable thrown) {
    // TODO Auto-generated method stub

  }

  @Override
  public void debug(String msg, Throwable thrown) {
    // TODO Auto-generated method stub

  }

  @Override
  public void ignore(Throwable ignored) {
    // TODO Auto-generated method stub

  }

  @Override
  public void debug(String msg, long value) {
    // TODO Auto-generated method stub

  }

  @Override
  public Logger getLogger(String name) {
    return this;
  }

}

プロパティを設定してJettyを起動する

あとは、このクラスをプロパティに指定してJettyを起動すればよい。

    System.setProperty(
      "org.eclipse.jetty.util.log.class", 
      NoLogger.class.getName()
    );

    jettyServer = new Server(ポート番号);
    ....