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.spi;
018
019 import org.apache.logging.log4j.Level;
020 import org.apache.logging.log4j.Logger;
021 import org.apache.logging.log4j.Marker;
022 import org.apache.logging.log4j.message.Message;
023
024 /**
025 * Extends the {@code Logger} interface with methods that facilitate implementing or extending {@code Logger}s. Users
026 * should not need to use this interface.
027 */
028 public interface ExtendedLogger extends Logger {
029
030 /**
031 * Determines if logging is enabled.
032 *
033 * @param level The logging Level to check.
034 * @param marker A Marker or null.
035 * @param message The Message.
036 * @param t A Throwable.
037 * @return True if logging is enabled, false otherwise.
038 */
039 boolean isEnabled(Level level, Marker marker, Message message, Throwable t);
040
041 /**
042 * Determines if logging is enabled.
043 *
044 * @param level The logging Level to check.
045 * @param marker A Marker or null.
046 * @param message The message.
047 * @param t A Throwable.
048 * @return True if logging is enabled, false otherwise.
049 */
050 boolean isEnabled(Level level, Marker marker, Object message, Throwable t);
051
052 /**
053 * Determines if logging is enabled.
054 *
055 * @param level The logging Level to check.
056 * @param marker A Marker or null.
057 * @param message The message.
058 * @return True if logging is enabled, false otherwise.
059 * @param t the exception to log, including its stack trace.
060 */
061 boolean isEnabled(Level level, Marker marker, String message, Throwable t);
062
063 /**
064 * Determine if logging is enabled.
065 *
066 * @param level The logging Level to check.
067 * @param marker A Marker or null.
068 * @param message The message.
069 * @return True if logging is enabled, false otherwise.
070 */
071 boolean isEnabled(Level level, Marker marker, String message);
072
073 /**
074 * Determines if logging is enabled.
075 *
076 * @param level The logging Level to check.
077 * @param marker A Marker or null.
078 * @param message The message.
079 * @param params The parameters.
080 * @return True if logging is enabled, false otherwise.
081 */
082 boolean isEnabled(Level level, Marker marker, String message, Object... params);
083
084 /**
085 * Logs a message if the specified level is active.
086 *
087 * @param fqcn The fully qualified class name of the logger entry point, used to determine the caller class and
088 * method when location information needs to be logged.
089 * @param level The logging Level to check.
090 * @param marker A Marker or null.
091 * @param message The Message.
092 * @param t the exception to log, including its stack trace.
093 */
094 void logIfEnabled(String fqcn, Level level, Marker marker, Message message, Throwable t);
095
096 /**
097 * Logs a message if the specified level is active.
098 *
099 * @param fqcn The fully qualified class name of the logger entry point, used to determine the caller class and
100 * method when location information needs to be logged.
101 * @param level The logging Level to check.
102 * @param marker A Marker or null.
103 * @param message The message.
104 * @param t the exception to log, including its stack trace.
105 */
106 void logIfEnabled(String fqcn, Level level, Marker marker, Object message, Throwable t);
107
108 /**
109 * Logs a message if the specified level is active.
110 *
111 * @param fqcn The fully qualified class name of the logger entry point, used to determine the caller class and
112 * method when location information needs to be logged.
113 * @param level The logging Level to check.
114 * @param marker A Marker or null.
115 * @param message The message.
116 * @param t the exception to log, including its stack trace.
117 */
118 void logIfEnabled(String fqcn, Level level, Marker marker, String message, Throwable t);
119
120 /**
121 * Logs a message if the specified level is active.
122 *
123 * @param fqcn The fully qualified class name of the logger entry point, used to determine the caller class and
124 * method when location information needs to be logged.
125 * @param level The logging Level to check.
126 * @param marker A Marker or null.
127 * @param message The message.
128 */
129 void logIfEnabled(String fqcn, Level level, Marker marker, String message);
130
131 /**
132 * Logs a message if the specified level is active.
133 *
134 * @param fqcn The fully qualified class name of the logger entry point, used to determine the caller class and
135 * method when location information needs to be logged.
136 * @param level The logging Level to check.
137 * @param marker A Marker or null.
138 * @param message The message format.
139 * @param params The message parameters.
140 */
141 void logIfEnabled(String fqcn, Level level, Marker marker, String message, Object... params);
142
143 /**
144 * Always logs a message at the specified level. It is the responsibility of the caller to ensure the specified
145 * level is enabled.
146 *
147 * @param fqcn The fully qualified class name of the logger entry point, used to determine the caller class and
148 * method when location information needs to be logged.
149 * @param level The logging Level to check.
150 * @param marker A Marker or null.
151 * @param message The Message.
152 * @param t the exception to log, including its stack trace.
153 */
154 void logMessage(String fqcn, Level level, Marker marker, Message message, Throwable t);
155 }