001 //$HeadURL: svn+ssh://rbezema@svn.wald.intevation.org/deegree/base/tags/2.1/src/org/deegree/framework/log/ILogger.java $ 002 /*---------------- FILE HEADER ------------------------------------------ 003 004 This file is part of deegree. 005 Copyright (C) 2001-2006 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: mschneider $ 058 * 059 * @version $Revision: 7597 $, $Date: 2007-06-19 15:29:49 +0200 (Di, 19 Jun 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 * Logs the given text to the specified file if log level is set to <code>LOG_DEBUG</code>. 101 * 102 * @param file 103 * file to log to 104 * @param content 105 * text to be logged 106 */ 107 void logDebugFile( File file, String content ); 108 109 /** 110 * Logs the given text to a temporary file (created from specified prefix and suffix) if log level is set to 111 * <code>LOG_DEBUG</code>. 112 * 113 * @see File#createTempFile(String, String) 114 * @param filePrefix 115 * prefix for the temp file name 116 * @param fileSuffix 117 * suffix for the temp file name, can be null (then ".tmp" is used) 118 * @param content 119 * text to be logged 120 */ 121 void logDebugFile( String filePrefix, String fileSuffix, String content ); 122 123 /** 124 * Logs the given {@link XMLFragment} to a temporary file (created from specified prefix and suffix ".xml") if log 125 * level is set to <code>LOG_DEBUG</code>. 126 * 127 * @param filePrefix 128 * prefix for the temp file name 129 * @param fragment 130 * XMLFragment to be logged (will be pretty-printed) 131 */ 132 void logDebugXMLFile( String filePrefix, XMLFragment fragment ); 133 134 /** 135 * Logs the given binary data to the specified file if log level is set to <code>LOG_DEBUG</code>. 136 * 137 * @param file 138 * file to log to 139 * @param data 140 * binary data to be logged 141 */ 142 void logDebugBinaryFile( File file, byte[] data ); 143 144 /** 145 * Logs the given binary data to a temporary file (created from specified prefix and suffix) if log level is set to 146 * <code>LOG_DEBUG</code>. 147 * 148 * @see File#createTempFile(String, String) 149 * @param filePrefix 150 * prefix for the temp file name 151 * @param fileSuffix 152 * suffix for the temp file name, can be null (then ".tmp" is used) 153 * @param data 154 * binary data to be logged 155 */ 156 void logDebugBinaryFile( String filePrefix, String fileSuffix, byte[] data ); 157 158 /** 159 * 160 * @param message 161 */ 162 void logInfo( String message ); 163 164 /** 165 * 166 * @param message 167 */ 168 void logWarning( String message ); 169 170 /** 171 * Log error message. 172 * 173 * @param message 174 * the log message 175 */ 176 void logError( String message ); 177 178 /** 179 * 180 * @param message 181 * @param e 182 */ 183 void logDebug( String message, Throwable e ); 184 185 /** 186 * 187 * @param message 188 * @param e 189 */ 190 void logInfo( String message, Throwable e ); 191 192 /** 193 * 194 * @param message 195 * @param e 196 */ 197 void logWarning( String message, Throwable e ); 198 199 /** 200 * Log error with exception 201 * 202 * @param message 203 * the log message 204 * @param e 205 * the exception to be logged 206 */ 207 void logError( String message, Throwable e ); 208 209 /** 210 * 211 * @param message 212 * @param tracableObject 213 */ 214 void logDebug( String message, Object tracableObject ); 215 216 /** 217 * 218 * @param message 219 * @param tracableObject 220 */ 221 void logInfo( String message, Object tracableObject ); 222 223 /** 224 * 225 * @param priority 226 * @param message 227 * @param ex 228 */ 229 void log( int priority, String message, Throwable ex ); 230 231 /** 232 * 233 * @param priority 234 * @param message 235 * @param source 236 * @param ex 237 */ 238 void log( int priority, String message, Object source, Throwable ex ); 239 240 /** 241 * Log a method entry. 242 * 243 */ 244 void entering(); 245 246 /** 247 * Log a method entry. 248 * 249 * @param sourceClass 250 * @param sourceMethod 251 */ 252 void entering( String sourceClass, String sourceMethod ); 253 254 /** 255 * Log a method entry with parameters. 256 * 257 * @param sourceClass 258 * @param sourceMethod 259 * @param arguments 260 * the parameters to be given 261 */ 262 void entering( String sourceClass, String sourceMethod, Object[] arguments ); 263 264 /** 265 * Log a method return. 266 */ 267 void exiting(); 268 269 /** 270 * Log a method return. 271 * 272 * @param sourceClass 273 * @param sourceMethod 274 */ 275 void exiting( String sourceClass, String sourceMethod ); 276 277 /** 278 * Log a method return with parameters. 279 * 280 * @param sourceClass 281 * @param sourceMethod 282 * @param arguments 283 */ 284 void exiting( String sourceClass, String sourceMethod, Object[] arguments ); 285 286 /** 287 * sets the debug level 288 * 289 * @param level 290 * 291 */ 292 void setLevel( int level ); 293 294 /** 295 * @return the debug level 296 * 297 */ 298 int getLevel(); 299 300 /** 301 * Debugging log is enabled. 302 * 303 * @return <code>true</code> if the log level is DEBUG, otherwise <code>false</code> 304 */ 305 boolean isDebug(); 306 }