001 //$HeadURL: svn+ssh://rbezema@svn.wald.intevation.org/deegree/base/branches/2.2_testing/src/org/deegree/framework/log/ILogger.java $
002 /*---------------- FILE HEADER ------------------------------------------
003
004 This file is part of deegree.
005 Copyright (C) 2001-2008 by:
006 EXSE, Department of Geography, University of Bonn
007 http://www.giub.uni-bonn.de/deegree/
008 lat/lon GmbH
009 http://www.lat-lon.de
010
011 This library is free software; you can redistribute it and/or
012 modify it under the terms of the GNU Lesser General Public
013 License as published by the Free Software Foundation; either
014 version 2.1 of the License, or (at your option) any later version.
015
016 This library is distributed in the hope that it will be useful,
017 but WITHOUT ANY WARRANTY; without even the implied warranty of
018 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
019 Lesser General Public License for more details.
020
021 You should have received a copy of the GNU Lesser General Public
022 License along with this library; if not, write to the Free Software
023 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
024
025 Contact:
026
027 Andreas Poth
028 lat/lon GmbH
029 Aennchenstr. 19
030 53115 Bonn
031 Germany
032 E-Mail: poth@lat-lon.de
033
034 Prof. Dr. Klaus Greve
035 Department of Geography
036 University of Bonn
037 Meckenheimer Allee 166
038 53115 Bonn
039 Germany
040 E-Mail: greve@giub.uni-bonn.de
041
042
043 ---------------------------------------------------------------------------*/
044 package org.deegree.framework.log;
045
046 import java.io.File;
047 import java.util.Properties;
048
049 import org.deegree.framework.xml.XMLFragment;
050
051 /**
052 * This interface specifies the log worker services.
053 *
054 * @author <a href="mailto:tfr@users.sourceforge.net">Torsten Friebe</a>
055 * @author <a href="mailto:schmitz@lat-lon.de">Andreas Schmitz</a>
056 * @author <a href="mailto:schneider@lat-lon.de">Markus Schneider</a>
057 * @author last edited by: $Author: apoth $
058 *
059 * @version $Revision: 9347 $, $Date: 2007-12-27 17:58:50 +0100 (Do, 27 Dez 2007) $
060 */
061 public interface ILogger {
062
063 /** Debug log level */
064 int LOG_DEBUG = 0;
065
066 /** Info log level */
067 int LOG_INFO = 1;
068
069 /** Warning log level */
070 int LOG_WARNING = 2;
071
072 /** Fatal error log level */
073 int LOG_ERROR = 3;
074
075 /**
076 *
077 * @param props
078 */
079 void init( Properties props );
080
081 /**
082 *
083 * @param name
084 */
085 void bindClass( String name );
086
087 /**
088 *
089 * @param name
090 */
091 void bindClass( Class name );
092
093 /**
094 *
095 * @param message
096 */
097 void logDebug( String message );
098
099
100
101 /**
102 * Logs the given text to the specified file if log level is set to <code>LOG_DEBUG</code>.
103 *
104 * @param file
105 * file to log to
106 * @param content
107 * text to be logged
108 */
109 void logDebugFile( File file, String content );
110
111 /**
112 * Logs the given text to a temporary file (created from specified prefix and suffix) if log level is set to
113 * <code>LOG_DEBUG</code>.
114 *
115 * @see File#createTempFile(String, String)
116 * @param filePrefix
117 * prefix for the temp file name
118 * @param fileSuffix
119 * suffix for the temp file name, can be null (then ".tmp" is used)
120 * @param content
121 * text to be logged
122 */
123 void logDebugFile( String filePrefix, String fileSuffix, String content );
124
125 /**
126 * Logs the given {@link XMLFragment} to a temporary file (created from specified prefix and suffix ".xml") if log
127 * level is set to <code>LOG_DEBUG</code>.
128 *
129 * @param filePrefix
130 * prefix for the temp file name
131 * @param fragment
132 * XMLFragment to be logged (will be pretty-printed)
133 */
134 void logDebugXMLFile( String filePrefix, XMLFragment fragment );
135
136 /**
137 * Logs the given binary data to the specified file if log level is set to <code>LOG_DEBUG</code>.
138 *
139 * @param file
140 * file to log to
141 * @param data
142 * binary data to be logged
143 */
144 void logDebugBinaryFile( File file, byte[] data );
145
146 /**
147 * Logs the given binary data to a temporary file (created from specified prefix and suffix) if log level is set to
148 * <code>LOG_DEBUG</code>.
149 *
150 * @see File#createTempFile(String, String)
151 * @param filePrefix
152 * prefix for the temp file name
153 * @param fileSuffix
154 * suffix for the temp file name, can be null (then ".tmp" is used)
155 * @param data
156 * binary data to be logged
157 */
158 void logDebugBinaryFile( String filePrefix, String fileSuffix, byte[] data );
159
160 /**
161 *
162 * @param message
163 */
164 void logInfo( String message );
165
166 /**
167 *
168 * @param message
169 */
170 void logWarning( String message );
171
172 /**
173 * Log error message.
174 *
175 * @param message
176 * the log message
177 */
178 void logError( String message );
179
180 /**
181 *
182 * @param message
183 * @param e
184 */
185 void logDebug( String message, Throwable e );
186
187 /**
188 *
189 * @param message
190 * @param e
191 */
192 void logInfo( String message, Throwable e );
193
194 /**
195 *
196 * @param message
197 * @param e
198 */
199 void logWarning( String message, Throwable e );
200
201 /**
202 * Log error with exception
203 *
204 * @param message
205 * the log message
206 * @param e
207 * the exception to be logged
208 */
209 void logError( String message, Throwable e );
210
211 /**
212 *
213 * @param message
214 * @param tracableObject
215 */
216 void logDebug( String message, Object tracableObject );
217
218
219 /**
220 *
221 * @param message
222 * @param tracableObjects
223 */
224 void logDebug( String message, Object...tracableObject );
225
226 /**
227 *
228 * @param message
229 * @param tracableObject
230 */
231 void logInfo( String message, Object tracableObject );
232
233 /**
234 *
235 * @param message
236 * @param tracableObjects
237 */
238 void logInfo( String message, Object...tracableObject );
239
240 /**
241 *
242 * @param priority
243 * @param message
244 * @param ex
245 */
246 void log( int priority, String message, Throwable ex );
247
248 /**
249 *
250 * @param priority
251 * @param message
252 * @param source
253 * @param ex
254 */
255 void log( int priority, String message, Object source, Throwable ex );
256
257 /**
258 * sets the debug level
259 *
260 * @param level
261 *
262 */
263 void setLevel( int level );
264
265 /**
266 * @return the debug level
267 *
268 */
269 int getLevel();
270
271 /**
272 * Debugging log is enabled.
273 *
274 * @return <code>true</code> if the log level is DEBUG, otherwise <code>false</code>
275 */
276 boolean isDebug();
277 }