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