View Javadoc

    1   /*
    2    * Licensed to the Apache Software Foundation (ASF) under one or more
    3    * contributor license agreements.  See the NOTICE file distributed with
    4    * this work for additional information regarding copyright ownership.
    5    * The ASF licenses this file to You under the Apache License, Version 2.0
    6    * (the "License"); you may not use this file except in compliance with
    7    * the License.  You may obtain a copy of the License at
    8    *
    9    *      http://www.apache.org/licenses/LICENSE-2.0
    10   *
    11   * Unless required by applicable law or agreed to in writing, software
    12   * distributed under the License is distributed on an "AS IS" BASIS,
    13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14   * See the License for the specific language governing permissions and
    15   * limitations under the License.
    16   */
    17
    18  package org.apache.log4j.varia;
    19
    20  import org.apache.log4j.AppenderSkeleton;
    21  import org.apache.log4j.spi.LoggingEvent;
    22
    23  import javax.swing.*;
    24
    25
    26  /**
    27   * A very basic appender that takes the events and stores them in to a
    28   * ListModel for late retrieval.
    29   *
    30   * @author Paul Smith (psmith@apache.org)
    31   */
    32  public final class ListModelAppender extends AppenderSkeleton {
    33      /**
    34       * Default list model.
    35       */
    36      private final DefaultListModel<LoggingEvent> model = new DefaultListModel<>();
    37
    38      /**
    39       * Constructs a ListModelAppender.
    40       */
    41      public ListModelAppender() {
    42          super(true);
    43      }
    44
    45      /**
    46       * Returns a reference to the ListModel that contains all the LoggingEvents
    47       * that have been appended to this class.
    48       *
    49       * @return the list model
    50       */
    51      public ListModel<LoggingEvent> getModel() {
    52          return model;
    53      }
    54
    55      /**
    56       * {@inheritDoc}
    57       */
    58      protected void append(final LoggingEvent event) {
    59          model.addElement(event);
    60      }
    61
    62      /**
    63       * {@inheritDoc}
    64       */
    65      public void close() {
    66          clearModel();
    67      }
    68
    69      /**
    70       * Removes all the Events from the model.
    71       */
    72      public void clearModel() {
    73          model.clear();
    74      }
    75
    76      /**
    77       * {@inheritDoc}
    78       */
    79      public boolean requiresLayout() {
    80          return false;
    81      }
    82
    83  }