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  package org.apache.logging.log4j.core.appender.rolling;
    18
    19  import org.apache.logging.log4j.core.appender.rolling.action.Action;
    20
    21  /**
    22   * Description of actions needed to complete rollover.
    23   */
    24  public final class RolloverDescriptionImpl implements RolloverDescription {
    25      /**
    26       * Active log file name after rollover.
    27       */
    28      private final String activeFileName;
    29
    30      /**
    31       * Should active file be opened for appending.
    32       */
    33      private final boolean append;
    34
    35      /**
    36       * Action to be completed after close of current active log file
    37       * before returning control to caller.
    38       */
    39      private final Action synchronous;
    40
    41      /**
    42       * Action to be completed after close of current active log file
    43       * and before next rollover attempt, may be executed asynchronously.
    44       */
    45      private final Action asynchronous;
    46
    47      /**
    48       * Create new instance.
    49       *
    50       * @param activeFileName active log file name after rollover, may not be null.
    51       * @param append         true if active log file after rollover should be opened for appending.
    52       * @param synchronous    action to be completed after close of current active log file, may be null.
    53       * @param asynchronous   action to be completed after close of current active log file and
    54       *                       before next rollover attempt.
    55       */
    56      public RolloverDescriptionImpl(final String activeFileName, final boolean append, final Action synchronous,
    57                                     final Action asynchronous) {
    58          if (activeFileName == null) {
    59              throw new NullPointerException("activeFileName");
    60          }
    61
    62          this.append = append;
    63          this.activeFileName = activeFileName;
    64          this.synchronous = synchronous;
    65          this.asynchronous = asynchronous;
    66      }
    67
    68      /**
    69       * Active log file name after rollover.
    70       *
    71       * @return active log file name after rollover.
    72       */
    73      @Override
    74      public String getActiveFileName() {
    75          return activeFileName;
    76      }
    77
    78      /**
    79       * {@inheritDoc}
    80       */
    81      @Override
    82      public boolean getAppend() {
    83          return append;
    84      }
    85
    86      /**
    87       * Action to be completed after close of current active log file
    88       * before returning control to caller.
    89       *
    90       * @return action, may be null.
    91       */
    92      @Override
    93      public Action getSynchronous() {
    94          return synchronous;
    95      }
    96
    97      /**
    98       * Action to be completed after close of current active log file
    99       * and before next rollover attempt, may be executed asynchronously.
    100      *
    101      * @return action, may be null.
    102      */
    103     @Override
    104     public Action getAsynchronous() {
    105         return asynchronous;
    106     }
    107 }