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 /**
24 * This interface supplies the API for providing feedback to the user from the <code>Mojo</code>, using standard
25 * <code>Maven</code> channels.<br>
26 * There should be no big surprises here, although you may notice that the methods accept
27 * <code>java.lang.CharSequence</code> rather than <code>java.lang.String</code>. This is provided mainly as a
28 * convenience, to enable developers to pass things like <code>java.lang.StringBuffer</code> directly into the logger,
29 * rather than formatting first by calling <code>toString()</code>.
30 *
31 * @since 4.0
32 */
33 public interface Log {
34 /**
35 * @return true if the <b>debug</b> error level is enabled
36 */
37 boolean isDebugEnabled();
38
39 /**
40 * Send a message to the user in the <b>debug</b> error level.
41 *
42 * @param content
43 */
44 void debug(CharSequence content);
45
46 /**
47 * Send a message (and accompanying exception) to the user in the <b>debug</b> error level.<br>
48 * The error's stacktrace will be output when this error level is enabled.
49 *
50 * @param content
51 * @param error
52 */
53 void debug(CharSequence content, Throwable error);
54
55 /**
56 * Send an exception to the user in the <b>debug</b> error level.<br>
57 * The stack trace for this exception will be output when this error level is enabled.
58 *
59 * @param error
60 */
61 void debug(Throwable error);
62
63 void debug(Supplier<String> content);
64
65 void debug(Supplier<String> content, Throwable error);
66
67 /**
68 * @return true if the <b>info</b> error level is enabled
69 */
70 boolean isInfoEnabled();
71
72 /**
73 * Send a message to the user in the <b>info</b> error level.
74 *
75 * @param content
76 */
77 void info(CharSequence content);
78
79 /**
80 * Send a message (and accompanying exception) to the user in the <b>info</b> error level.<br>
81 * The error's stacktrace will be output when this error level is enabled.
82 *
83 * @param content
84 * @param error
85 */
86 void info(CharSequence content, Throwable error);
87
88 /**
89 * Send an exception to the user in the <b>info</b> error level.<br>
90 * The stack trace for this exception will be output when this error level is enabled.
91 *
92 * @param error
93 */
94 void info(Throwable error);
95
96 void info(Supplier<String> content);
97
98 void info(Supplier<String> content, Throwable error);
99
100 /**
101 * @return true if the <b>warn</b> error level is enabled
102 */
103 boolean isWarnEnabled();
104
105 /**
106 * Send a message to the user in the <b>warn</b> error level.
107 *
108 * @param content
109 */
110 void warn(CharSequence content);
111
112 /**
113 * Send a message (and accompanying exception) to the user in the <b>warn</b> error level.<br>
114 * The error's stacktrace will be output when this error level is enabled.
115 *
116 * @param content
117 * @param error
118 */
119 void warn(CharSequence content, Throwable error);
120
121 /**
122 * Send an exception to the user in the <b>warn</b> error level.<br>
123 * The stack trace for this exception will be output when this error level is enabled.
124 *
125 * @param error
126 */
127 void warn(Throwable error);
128
129 void warn(Supplier<String> content);
130
131 void warn(Supplier<String> content, Throwable error);
132
133 /**
134 * @return true if the <b>error</b> error level is enabled
135 */
136 boolean isErrorEnabled();
137
138 /**
139 * Send a message to the user in the <b>error</b> error level.
140 *
141 * @param content
142 */
143 void error(CharSequence content);
144
145 /**
146 * Send a message (and accompanying exception) to the user in the <b>error</b> error level.<br>
147 * The error's stacktrace will be output when this error level is enabled.
148 *
149 * @param content
150 * @param error
151 */
152 void error(CharSequence content, Throwable error);
153
154 /**
155 * Send an exception to the user in the <b>error</b> error level.<br>
156 * The stack trace for this exception will be output when this error level is enabled.
157 *
158 * @param error
159 */
160 void error(Throwable error);
161
162 void error(Supplier<String> content);
163
164 void error(Supplier<String> content, Throwable error);
165 }