예제 #1
0
  /**
   * Set whether or not to use LineNumberFormatter for this logger. If true and there is no
   * associated ConsoleHandler, create one, set the Formatter to LineNumberFormatter, and
   * setUseParentHandlers to false. If false, find any instances of ConsoleHandler and set the
   * formatter to SimpleFormatter. Okay, this is a little ugly, but i often want to use
   * LineNumberFormatter and this simplifies that.
   */
  public void useLineNumberFormatter(boolean use) {
    Handler handlers[] = getHandlers();

    if (use && handlers.length == 0) {
      createNewConsoleHandler();
      return;
    }

    boolean found = false;
    for (int i = 0; i < handlers.length; i++) {
      // System.out.println ("handlers[" + i + "] = " + handlers[i]);
      if (handlers[i] instanceof ConsoleHandler) {
        Formatter f = handlers[i].getFormatter();

        if (use && !(f instanceof LineNumberFormatter)) {
          found = true;
          handlers[i].setFormatter(new LineNumberFormatter());
        } else if (!use && (f instanceof LineNumberFormatter)) {
          handlers[i].setFormatter(new SimpleFormatter());
        }
      }
    }

    if (use && !found) {
      createNewConsoleHandler();
    }
  }