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.enforcer.rule.api;
20
21 import java.util.function.Supplier;
22
23 /**
24 * Logger used by enforcer rule.
25 *
26 * @author Slawomir Jaranowski
27 * @since 3.2.1
28 */
29 public interface EnforcerLogger {
30
31 /**
32 * Log message in {@code warn} or {@code error} level according to current rule {@link EnforcerLevel}.
33 *
34 * @param message a massage to log
35 */
36 void warnOrError(CharSequence message);
37
38 /**
39 * Log message in {@code warn} or {@code error} level according to current rule {@link EnforcerLevel}.
40 * <p>
41 * {@code messageSupplier} will be evaluate only when corresponding log level is enabled.
42 *
43 * @param messageSupplier a supplier for message to log
44 */
45 void warnOrError(Supplier<CharSequence> messageSupplier);
46
47 /**
48 * Is the logger instance enabled for the DEBUG level?
49 *
50 * @return {@code true} if this Logger is enabled for the DEBUG level, {@code false} otherwise.
51 * @since 3.4.0
52 */
53 boolean isDebugEnabled();
54
55 /**
56 * Log message in {@code debug} level.
57 *
58 * @param message a massage to log
59 */
60 void debug(CharSequence message);
61
62 /**
63 * Log message in {@code debug} level.
64 * <p>
65 * {@code messageSupplier} will be evaluate only when corresponding log level is enabled.
66 *
67 * @param messageSupplier a supplier for message to log
68 */
69 void debug(Supplier<CharSequence> messageSupplier);
70
71 /**
72 * Is the logger instance enabled for the INFO level?
73 *
74 * @return {@code true} if this Logger is enabled for the INFO level, {@code false} otherwise.
75 * @since 3.4.0
76 */
77 boolean isInfoEnabled();
78
79 /**
80 * Log message in {@code info} level.
81 *
82 * @param message a massage to log
83 */
84 void info(CharSequence message);
85
86 /**
87 * Log message in {@code info} level.
88 * <p>
89 * {@code messageSupplier} will be evaluate only when corresponding log level is enabled.
90 *
91 * @param messageSupplier a supplier for message to log
92 */
93 void info(Supplier<CharSequence> messageSupplier);
94
95 /**
96 * Is the logger instance enabled for the WARN level?
97 *
98 * @return {@code true} if this Logger is enabled for the WARN level, {@code false} otherwise.
99 * @since 3.4.0
100 */
101 boolean isWarnEnabled();
102
103 /**
104 * Log message in {@code warn} level.
105 *
106 * @param message a massage to log
107 */
108 void warn(CharSequence message);
109
110 /**
111 * Log message in {@code warn} level.
112 * <p>
113 * {@code messageSupplier} will be evaluate only when corresponding log level is enabled.
114 *
115 * @param messageSupplier a supplier for message to log
116 */
117 void warn(Supplier<CharSequence> messageSupplier);
118
119 /**
120 * Is the logger instance enabled for the ERROR level?
121 *
122 * @return {@code true} if this Logger is enabled for the ERROR level, {@code false} otherwise.
123 * @since 3.4.0
124 */
125 boolean isErrorEnabled();
126
127 /**
128 * Log message in {@code error} level.
129 *
130 * @param message a massage to log
131 */
132 void error(CharSequence message);
133
134 /**
135 * Log message in {@code error} level.
136 * <p>
137 * {@code messageSupplier} will be evaluate only when corresponding log level is enabled.
138 *
139 * @param messageSupplier a supplier for message to log
140 */
141 void error(Supplier<CharSequence> messageSupplier);
142 }