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 }