1 /* 2 * Licensed to the Apache Software Foundation (ASF) under one 3 * or more contributor license agreements. See the NOTICE file 4 * distributed with this work for additional information 5 * regarding copyright ownership. The ASF licenses this file 6 * to you under the Apache License, Version 2.0 (the 7 * "License"); you may not use this file except in compliance 8 * with the License. You may obtain a copy of the License at 9 * 10 * http://www.apache.org/licenses/LICENSE-2.0 11 * 12 * Unless required by applicable law or agreed to in writing, 13 * software distributed under the License is distributed on an 14 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 * KIND, either express or implied. See the License for the 16 * specific language governing permissions and limitations 17 * under the License. 18 */ 19 package org.apache.maven.api.plugin; 20 21 import java.util.function.Supplier; 22 23 import org.apache.maven.api.annotations.Experimental; 24 import org.apache.maven.api.annotations.Provider; 25 26 /** 27 * This interface supplies the API for providing feedback to the user from the {@code Mojo}, 28 * using standard Maven channels. 29 * There should be no big surprises here, although you may notice that the methods accept 30 * <code>java.lang.CharSequence</code> rather than <code>java.lang.String</code>. This is provided mainly as a 31 * convenience, to enable developers to pass things like <code>java.lang.StringBuffer</code> directly into the logger, 32 * rather than formatting first by calling <code>toString()</code>. 33 * 34 * @since 4.0.0 35 */ 36 @Experimental 37 @Provider 38 public interface Log { 39 /** 40 * {@return true if the <b>debug</b> error level is enabled}. 41 */ 42 boolean isDebugEnabled(); 43 44 /** 45 * Sends a message to the user in the <b>debug</b> error level. 46 * 47 * @param content the message to log 48 */ 49 void debug(CharSequence content); 50 51 /** 52 * Sends a message (and accompanying exception) to the user in the <b>debug</b> error level. 53 * The error's stacktrace will be output when this error level is enabled. 54 * 55 * @param content the message to log 56 * @param error the error that caused this log 57 */ 58 void debug(CharSequence content, Throwable error); 59 60 /** 61 * Sends an exception to the user in the <b>debug</b> error level. 62 * The stack trace for this exception will be output when this error level is enabled. 63 * 64 * @param error the error that caused this log 65 */ 66 void debug(Throwable error); 67 68 void debug(Supplier<String> content); 69 70 void debug(Supplier<String> content, Throwable error); 71 72 /** 73 * {@return true if the <b>info</b> error level is enabled}. 74 */ 75 boolean isInfoEnabled(); 76 77 /** 78 * Sends a message to the user in the <b>info</b> error level. 79 * 80 * @param content the message to log 81 */ 82 void info(CharSequence content); 83 84 /** 85 * Sends a message (and accompanying exception) to the user in the <b>info</b> error level. 86 * The error's stacktrace will be output when this error level is enabled. 87 * 88 * @param content the message to log 89 * @param error the error that caused this log 90 */ 91 void info(CharSequence content, Throwable error); 92 93 /** 94 * Sends an exception to the user in the <b>info</b> error level. 95 * The stack trace for this exception will be output when this error level is enabled. 96 * 97 * @param error the error that caused this log 98 */ 99 void info(Throwable error); 100 101 void info(Supplier<String> content); 102 103 void info(Supplier<String> content, Throwable error); 104 105 /** 106 * {@return true if the <b>warn</b> error level is enabled}. 107 */ 108 boolean isWarnEnabled(); 109 110 /** 111 * Sends a message to the user in the <b>warn</b> error level. 112 * 113 * @param content the message to log 114 */ 115 void warn(CharSequence content); 116 117 /** 118 * Sends a message (and accompanying exception) to the user in the <b>warn</b> error level. 119 * The error's stacktrace will be output when this error level is enabled. 120 * 121 * @param content the message to log 122 * @param error the error that caused this log 123 */ 124 void warn(CharSequence content, Throwable error); 125 126 /** 127 * Sends an exception to the user in the <b>warn</b> error level. 128 * The stack trace for this exception will be output when this error level is enabled. 129 * 130 * @param error the error that caused this log 131 */ 132 void warn(Throwable error); 133 134 void warn(Supplier<String> content); 135 136 void warn(Supplier<String> content, Throwable error); 137 138 /** 139 * {@return true if the <b>error</b> error level is enabled}. 140 */ 141 boolean isErrorEnabled(); 142 143 /** 144 * Sends a message to the user in the <b>error</b> error level. 145 * 146 * @param content the message to log 147 */ 148 void error(CharSequence content); 149 150 /** 151 * Sends a message (and accompanying exception) to the user in the <b>error</b> error level. 152 * The error's stacktrace will be output when this error level is enabled. 153 * 154 * @param content the message to log 155 * @param error the error that caused this log 156 */ 157 void error(CharSequence content, Throwable error); 158 159 /** 160 * Sends an exception to the user in the <b>error</b> error level. 161 * The stack trace for this exception will be output when this error level is enabled. 162 * 163 * @param error the error that caused this log 164 */ 165 void error(Throwable error); 166 167 void error(Supplier<String> content); 168 169 void error(Supplier<String> content, Throwable error); 170 }