001    /*
002     * Licensed to the Apache Software Foundation (ASF) under one or more
003     * contributor license agreements. See the NOTICE file distributed with
004     * this work for additional information regarding copyright ownership.
005     * The ASF licenses this file to You under the Apache license, Version 2.0
006     * (the "License"); you may not use this file except in compliance with
007     * the License. You may obtain a copy of the License at
008     *
009     *      http://www.apache.org/licenses/LICENSE-2.0
010     *
011     * Unless required by applicable law or agreed to in writing, software
012     * distributed under the License is distributed on an "AS IS" BASIS,
013     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014     * See the license for the specific language governing permissions and
015     * limitations under the license.
016     */
017    package org.apache.logging.log4j.core.appender;
018    
019    import org.apache.logging.log4j.LoggingException;
020    
021    /**
022     * Thrown from an appender when a log event could not be written. Appenders should not thrown an exception if an error
023     * occurs that does <em>not</em> stop the event from being successfully written. Those types of errors should be logged
024     * using the {@link org.apache.logging.log4j.status.StatusLogger}. Appenders should only throw exceptions when an error
025     * prevents an event from being written. Appenders <em>must</em> throw an exception in this case so that error-handling
026     * features like the {@link FailoverAppender} work properly.
027     *
028     * Also note that appenders <em>must</em> provide a way to suppress exceptions when the user desires and abide by
029     * that instruction. See {@link org.apache.logging.log4j.core.Appender#ignoreExceptions()}, which is the standard
030     * way to do this.
031     */
032    public class AppenderLoggingException extends LoggingException {
033    
034        private static final long serialVersionUID = 6545990597472958303L;
035    
036        /**
037         * Construct an exception with a message.
038         *
039         * @param message The reason for the exception
040         */
041        public AppenderLoggingException(final String message) {
042            super(message);
043        }
044    
045        /**
046         * Construct an exception with a message and underlying cause.
047         *
048         * @param message The reason for the exception
049         * @param cause The underlying cause of the exception
050         */
051        public AppenderLoggingException(final String message, final Throwable cause) {
052            super(message, cause);
053        }
054    
055        /**
056         * Construct an exception with an underlying cause.
057         *
058         * @param cause The underlying cause of the exception
059         */
060        public AppenderLoggingException(final Throwable cause) {
061            super(cause);
062        }
063    }