View Javadoc
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.shared.invoker;
20  
21  /**
22   * A logger used by {@link org.apache.maven.shared.invoker.Invoker} instances to output diagnostic messages.
23   *
24   * @see Invoker#setLogger(InvokerLogger)
25   * @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
26   */
27  public interface InvokerLogger {
28  
29      /**
30       * The threshold for debug output.
31       */
32      int DEBUG = 4;
33  
34      /**
35       * The threshold for info output.
36       */
37      int INFO = 3;
38  
39      /**
40       * The threshold for warn output.
41       */
42      int WARN = 2;
43  
44      /**
45       * The threshold for error output.
46       */
47      int ERROR = 1;
48  
49      /**
50       * The threshold for fatal error output.
51       */
52      int FATAL = 0;
53  
54      /**
55       * Logs the specified debug message.
56       *
57       * @param message The message to log, may be <code>null</code>.
58       */
59      void debug(String message);
60  
61      /**
62       * Logs the specified debug message and the accompanying exception.
63       *
64       * @param message The message to log, may be <code>null</code>.
65       * @param throwable The exception to log, may be <code>null</code>.
66       */
67      void debug(String message, Throwable throwable);
68  
69      /**
70       * Tests whether debug output is enabled for this logger.
71       *
72       * @return <code>true</code> if messages with priority "debug" or above are logged, <code>false</code>
73       *         otherwise.
74       */
75      boolean isDebugEnabled();
76  
77      /**
78       * Logs the specified info message.
79       *
80       * @param message The message to log, may be <code>null</code>.
81       */
82      void info(String message);
83  
84      /**
85       * Logs the specified info message and the accompanying exception.
86       *
87       * @param message The message to log, may be <code>null</code>.
88       * @param throwable The exception to log, may be <code>null</code>.
89       */
90      void info(String message, Throwable throwable);
91  
92      /**
93       * Tests whether info output is enabled for this logger.
94       *
95       * @return <code>true</code> if messages with priority "info" or above are logged, <code>false</code> otherwise.
96       */
97      boolean isInfoEnabled();
98  
99      /**
100      * Logs the specified warning message.
101      *
102      * @param message The message to log, may be <code>null</code>.
103      */
104     void warn(String message);
105 
106     /**
107      * Logs the specified warning message and the accompanying exception.
108      *
109      * @param message The message to log, may be <code>null</code>.
110      * @param throwable The exception to log, may be <code>null</code>.
111      */
112     void warn(String message, Throwable throwable);
113 
114     /**
115      * Tests whether warn output is enabled for this logger.
116      *
117      * @return <code>true</code> if messages with priority "warn" or above are logged, <code>false</code> otherwise.
118      */
119     boolean isWarnEnabled();
120 
121     /**
122      * Logs the specified error message.
123      *
124      * @param message The message to log, may be <code>null</code>.
125      */
126     void error(String message);
127 
128     /**
129      * Logs the specified error message and the accompanying exception.
130      *
131      * @param message The message to log, may be <code>null</code>.
132      * @param throwable The exception to log, may be <code>null</code>.
133      */
134     void error(String message, Throwable throwable);
135 
136     /**
137      * Tests whether error output is enabled for this logger.
138      *
139      * @return <code>true</code> if messages with priority "error" or above are logged, <code>false</code>
140      *         otherwise.
141      */
142     boolean isErrorEnabled();
143 
144     /**
145      * Logs the specified fatal error message.
146      *
147      * @param message The message to log, may be <code>null</code>.
148      */
149     void fatalError(String message);
150 
151     /**
152      * Logs the specified fatal error message and the accompanying exception.
153      *
154      * @param message The message to log, may be <code>null</code>.
155      * @param throwable The exception to log, may be <code>null</code>.
156      */
157     void fatalError(String message, Throwable throwable);
158 
159     /**
160      * Tests whether fatal error output is enabled for this logger.
161      *
162      * @return <code>true</code> if messages with priority "fatal" or above are logged, <code>false</code>
163      *         otherwise.
164      */
165     boolean isFatalErrorEnabled();
166 
167     /**
168      * Sets the logger's threshold.
169      *
170      * @param threshold The logger's threshold, must be one of {@link #DEBUG}, {@link #INFO}, {@link #WARN},
171      *            {@link #ERROR} and {@link #FATAL}.
172      */
173     void setThreshold(int threshold);
174 
175     /**
176      * Gets the logger's threshold.
177      *
178      * @return The logger's threshold, one of {@link #DEBUG}, {@link #INFO}, {@link #WARN}, {@link #ERROR} and
179      *         {@link #FATAL}.
180      */
181     int getThreshold();
182 }