public void dispose() {

    // prevent expensive shutdown calls on all the hierarchy's appenders
    if (!disposed) {
      hierarchy.shutdown();
      disposed = true;
    }
  }