17ba0605dc97fb81bde8311510d27b3ccba170008Ceki Gulcu/** 27ba0605dc97fb81bde8311510d27b3ccba170008Ceki Gulcu * Copyright (c) 2004-2011 QOS.ch 388c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu * All rights reserved. 47ba0605dc97fb81bde8311510d27b3ccba170008Ceki Gulcu * 588c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu * Permission is hereby granted, free of charge, to any person obtaining 688c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu * a copy of this software and associated documentation files (the 788c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu * "Software"), to deal in the Software without restriction, including 888c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu * without limitation the rights to use, copy, modify, merge, publish, 988c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu * distribute, sublicense, and/or sell copies of the Software, and to 1088c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu * permit persons to whom the Software is furnished to do so, subject to 1188c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu * the following conditions: 127ba0605dc97fb81bde8311510d27b3ccba170008Ceki Gulcu * 1388c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu * The above copyright notice and this permission notice shall be 1488c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu * included in all copies or substantial portions of the Software. 157ba0605dc97fb81bde8311510d27b3ccba170008Ceki Gulcu * 1688c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 1788c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 1888c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 1988c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 2088c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 2188c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 2288c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 237ba0605dc97fb81bde8311510d27b3ccba170008Ceki Gulcu * 2488c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu */ 2588c4c456766193e012eb890e2208473d99b91f83Ceki Gulcupackage org.slf4j.impl; 2688c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu 2788c4c456766193e012eb890e2208473d99b91f83Ceki Gulcuimport java.io.Serializable; 2888c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu 2988c4c456766193e012eb890e2208473d99b91f83Ceki Gulcuimport org.apache.log4j.Level; 3088c4c456766193e012eb890e2208473d99b91f83Ceki Gulcuimport org.slf4j.Logger; 3188c4c456766193e012eb890e2208473d99b91f83Ceki Gulcuimport org.slf4j.Marker; 323c0ab3466b6fa6e915974c72558d64c570734700Ceki Gulcuimport org.slf4j.helpers.FormattingTuple; 3388c4c456766193e012eb890e2208473d99b91f83Ceki Gulcuimport org.slf4j.helpers.MarkerIgnoringBase; 3488c4c456766193e012eb890e2208473d99b91f83Ceki Gulcuimport org.slf4j.helpers.MessageFormatter; 3588c4c456766193e012eb890e2208473d99b91f83Ceki Gulcuimport org.slf4j.spi.LocationAwareLogger; 3688c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu 3788c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu/** 3888c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu * A wrapper over {@link org.apache.log4j.Logger org.apache.log4j.Logger} in 396dd2bd58cffc857d064d0e0ac3017d6aee924bb8Ceki Gulcu * conforming to the {@link Logger} interface. 4088c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu * 416dd2bd58cffc857d064d0e0ac3017d6aee924bb8Ceki Gulcu * <p> 429f10490a05f7344f4b3ef657e8991f5d51934e2fCeki Gulcu * Note that the logging levels mentioned in this class refer to those defined 436dd2bd58cffc857d064d0e0ac3017d6aee924bb8Ceki Gulcu * in the <a 449f10490a05f7344f4b3ef657e8991f5d51934e2fCeki Gulcu * href="http://logging.apache.org/log4j/docs/api/org/apache/log4j/Level.html"> 456dd2bd58cffc857d064d0e0ac3017d6aee924bb8Ceki Gulcu * <code>org.apache.log4j.Level</code></a> class. 4688c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu * 4788c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu * <p> 4888c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu * The TRACE level was introduced in log4j version 1.2.12. In order to avoid 4988c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu * crashing the host application, in the case the log4j version in use predates 5088c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu * 1.2.12, the TRACE level will be mapped as DEBUG. See also <a 5188c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu * href="http://bugzilla.slf4j.org/show_bug.cgi?id=68">bug 68</a>. 5288c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu * 5388c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu * @author Ceki Gülcü 5488c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu */ 5531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcupublic final class Log4jLoggerAdapter extends MarkerIgnoringBase implements LocationAwareLogger, Serializable { 5631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 5731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu private static final long serialVersionUID = 6182834493563598289L; 5831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 5931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu final transient org.apache.log4j.Logger logger; 6031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 6131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 6231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Following the pattern discussed in pages 162 through 168 of "The complete 6331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * log4j manual". 6431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 6531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu final static String FQCN = Log4jLoggerAdapter.class.getName(); 6631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 6731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu // Does the log4j version in use recognize the TRACE level? 6831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu // The trace level was introduced in log4j 1.2.12. 6931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu final boolean traceCapable; 7031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 7131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu // WARN: Log4jLoggerAdapter constructor should have only package access so 7231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu // that 7331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu // only Log4jLoggerFactory be able to create one. 7431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu Log4jLoggerAdapter(org.apache.log4j.Logger logger) { 7531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu this.logger = logger; 7631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu this.name = logger.getName(); 7731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu traceCapable = isTraceCapable(); 7831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 7931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 8031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu private boolean isTraceCapable() { 8131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu try { 8231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu logger.isTraceEnabled(); 8331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu return true; 8431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } catch (NoSuchMethodError e) { 8531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu return false; 8631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 8731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 8831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 8931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 9031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Is this logger instance enabled for the TRACE level? 9131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 9231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @return True if this Logger is enabled for level TRACE, false otherwise. 9331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 9431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public boolean isTraceEnabled() { 9531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu if (traceCapable) { 9631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu return logger.isTraceEnabled(); 9731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } else { 9831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu return logger.isDebugEnabled(); 9931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 10031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 10131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 10231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 10331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Log a message object at level TRACE. 10431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 10531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param msg 10631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * - the message object to be logged 10731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 10831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public void trace(String msg) { 10931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu logger.log(FQCN, traceCapable ? Level.TRACE : Level.DEBUG, msg, null); 11031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 11131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 11231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 11331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Log a message at level TRACE according to the specified format and 11431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * argument. 11531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 11631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * <p> 11731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * This form avoids superfluous object creation when the logger is disabled 11831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * for level TRACE. 11931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * </p> 12031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 12131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param format 12231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the format string 12331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param arg 12431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the argument 12531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 12631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public void trace(String format, Object arg) { 12731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu if (isTraceEnabled()) { 12831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu FormattingTuple ft = MessageFormatter.format(format, arg); 12931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu logger.log(FQCN, traceCapable ? Level.TRACE : Level.DEBUG, ft.getMessage(), ft.getThrowable()); 13031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 13131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 13231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 13331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 13431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Log a message at level TRACE according to the specified format and 13531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * arguments. 13631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 13731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * <p> 13831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * This form avoids superfluous object creation when the logger is disabled 13931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * for the TRACE level. 14031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * </p> 14131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 14231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param format 14331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the format string 14431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param arg1 14531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the first argument 14631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param arg2 14731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the second argument 14831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 14931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public void trace(String format, Object arg1, Object arg2) { 15031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu if (isTraceEnabled()) { 15131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu FormattingTuple ft = MessageFormatter.format(format, arg1, arg2); 15231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu logger.log(FQCN, traceCapable ? Level.TRACE : Level.DEBUG, ft.getMessage(), ft.getThrowable()); 15331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 15431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 15531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 15631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 15731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Log a message at level TRACE according to the specified format and 15831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * arguments. 15931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 16031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * <p> 16131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * This form avoids superfluous object creation when the logger is disabled 16231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * for the TRACE level. 16331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * </p> 16431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 16531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param format 16631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the format string 16731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param arguments 16831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * an array of arguments 16931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 17031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public void trace(String format, Object... arguments) { 17131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu if (isTraceEnabled()) { 17231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu FormattingTuple ft = MessageFormatter.arrayFormat(format, arguments); 17331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu logger.log(FQCN, traceCapable ? Level.TRACE : Level.DEBUG, ft.getMessage(), ft.getThrowable()); 17431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 17531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 17631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 17731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 17831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Log an exception (throwable) at level TRACE with an accompanying message. 17931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 18031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param msg 18131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the message accompanying the exception 18231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param t 18331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the exception (throwable) to log 18431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 18531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public void trace(String msg, Throwable t) { 18631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu logger.log(FQCN, traceCapable ? Level.TRACE : Level.DEBUG, msg, t); 18731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 18831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 18931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 19031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Is this logger instance enabled for the DEBUG level? 19131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 19231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @return True if this Logger is enabled for level DEBUG, false otherwise. 19331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 19431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public boolean isDebugEnabled() { 19531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu return logger.isDebugEnabled(); 19631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 19731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 19831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 19931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Log a message object at level DEBUG. 20031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 20131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param msg 20231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * - the message object to be logged 20331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 20431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public void debug(String msg) { 20531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu logger.log(FQCN, Level.DEBUG, msg, null); 20631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 20731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 20831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 20931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Log a message at level DEBUG according to the specified format and 21031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * argument. 21131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 21231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * <p> 21331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * This form avoids superfluous object creation when the logger is disabled 21431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * for level DEBUG. 21531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * </p> 21631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 21731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param format 21831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the format string 21931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param arg 22031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the argument 22131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 22231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public void debug(String format, Object arg) { 22331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu if (logger.isDebugEnabled()) { 22431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu FormattingTuple ft = MessageFormatter.format(format, arg); 22531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu logger.log(FQCN, Level.DEBUG, ft.getMessage(), ft.getThrowable()); 22631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 22731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 22831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 22931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 23031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Log a message at level DEBUG according to the specified format and 23131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * arguments. 23231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 23331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * <p> 23431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * This form avoids superfluous object creation when the logger is disabled 23531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * for the DEBUG level. 23631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * </p> 23731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 23831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param format 23931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the format string 24031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param arg1 24131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the first argument 24231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param arg2 24331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the second argument 24431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 24531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public void debug(String format, Object arg1, Object arg2) { 24631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu if (logger.isDebugEnabled()) { 24731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu FormattingTuple ft = MessageFormatter.format(format, arg1, arg2); 24831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu logger.log(FQCN, Level.DEBUG, ft.getMessage(), ft.getThrowable()); 24931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 25031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 25131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 25231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 25331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Log a message at level DEBUG according to the specified format and 25431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * arguments. 25531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 25631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * <p> 25731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * This form avoids superfluous object creation when the logger is disabled 25831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * for the DEBUG level. 25931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * </p> 26031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 26131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param format 26231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the format string 26331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param arguments an array of arguments 26431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 26531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public void debug(String format, Object... arguments) { 26631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu if (logger.isDebugEnabled()) { 26731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu FormattingTuple ft = MessageFormatter.arrayFormat(format, arguments); 26831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu logger.log(FQCN, Level.DEBUG, ft.getMessage(), ft.getThrowable()); 26931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 27031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 27131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 27231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 27331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Log an exception (throwable) at level DEBUG with an accompanying message. 27431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 27531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param msg 27631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the message accompanying the exception 27731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param t 27831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the exception (throwable) to log 27931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 28031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public void debug(String msg, Throwable t) { 28131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu logger.log(FQCN, Level.DEBUG, msg, t); 28231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 28331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 28431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 28531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Is this logger instance enabled for the INFO level? 28631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 28731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @return True if this Logger is enabled for the INFO level, false otherwise. 28831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 28931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public boolean isInfoEnabled() { 29031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu return logger.isInfoEnabled(); 29131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 29231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 29331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 29431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Log a message object at the INFO level. 29531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 29631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param msg 29731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * - the message object to be logged 29831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 29931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public void info(String msg) { 30031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu logger.log(FQCN, Level.INFO, msg, null); 30131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 30231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 30331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 30431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Log a message at level INFO according to the specified format and argument. 30531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 30631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * <p> 30731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * This form avoids superfluous object creation when the logger is disabled 30831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * for the INFO level. 30931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * </p> 31031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 31131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param format 31231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the format string 31331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param arg 31431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the argument 31531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 31631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public void info(String format, Object arg) { 31731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu if (logger.isInfoEnabled()) { 31831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu FormattingTuple ft = MessageFormatter.format(format, arg); 31931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu logger.log(FQCN, Level.INFO, ft.getMessage(), ft.getThrowable()); 32031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 32131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 32231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 32331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 32431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Log a message at the INFO level according to the specified format and 32531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * arguments. 32631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 32731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * <p> 32831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * This form avoids superfluous object creation when the logger is disabled 32931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * for the INFO level. 33031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * </p> 33131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 33231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param format 33331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the format string 33431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param arg1 33531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the first argument 33631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param arg2 33731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the second argument 33831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 33931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public void info(String format, Object arg1, Object arg2) { 34031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu if (logger.isInfoEnabled()) { 34131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu FormattingTuple ft = MessageFormatter.format(format, arg1, arg2); 34231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu logger.log(FQCN, Level.INFO, ft.getMessage(), ft.getThrowable()); 34331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 34431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 34531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 34631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 34731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Log a message at level INFO according to the specified format and 34831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * arguments. 34931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 35031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * <p> 35131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * This form avoids superfluous object creation when the logger is disabled 35231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * for the INFO level. 35331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * </p> 35431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 35531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param format 35631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the format string 35731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param argArray 35831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * an array of arguments 35931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 36031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public void info(String format, Object... argArray) { 36131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu if (logger.isInfoEnabled()) { 36231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu FormattingTuple ft = MessageFormatter.arrayFormat(format, argArray); 36331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu logger.log(FQCN, Level.INFO, ft.getMessage(), ft.getThrowable()); 36431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 36531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 36631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 36731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 36831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Log an exception (throwable) at the INFO level with an accompanying 36931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * message. 37031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 37131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param msg 37231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the message accompanying the exception 37331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param t 37431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the exception (throwable) to log 37531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 37631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public void info(String msg, Throwable t) { 37731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu logger.log(FQCN, Level.INFO, msg, t); 37831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 37931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 38031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 38131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Is this logger instance enabled for the WARN level? 38231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 38331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @return True if this Logger is enabled for the WARN level, false otherwise. 38431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 38531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public boolean isWarnEnabled() { 38631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu return logger.isEnabledFor(Level.WARN); 38731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 38831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 38931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 39031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Log a message object at the WARN level. 39131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 39231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param msg 39331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * - the message object to be logged 39431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 39531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public void warn(String msg) { 39631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu logger.log(FQCN, Level.WARN, msg, null); 39731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 39831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 39931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 40031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Log a message at the WARN level according to the specified format and 40131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * argument. 40231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 40331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * <p> 40431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * This form avoids superfluous object creation when the logger is disabled 40531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * for the WARN level. 40631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * </p> 40731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 40831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param format 40931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the format string 41031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param arg 41131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the argument 41231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 41331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public void warn(String format, Object arg) { 41431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu if (logger.isEnabledFor(Level.WARN)) { 41531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu FormattingTuple ft = MessageFormatter.format(format, arg); 41631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu logger.log(FQCN, Level.WARN, ft.getMessage(), ft.getThrowable()); 41731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 41831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 41931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 42031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 42131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Log a message at the WARN level according to the specified format and 42231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * arguments. 42331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 42431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * <p> 42531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * This form avoids superfluous object creation when the logger is disabled 42631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * for the WARN level. 42731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * </p> 42831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 42931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param format 43031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the format string 43131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param arg1 43231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the first argument 43331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param arg2 43431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the second argument 43531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 43631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public void warn(String format, Object arg1, Object arg2) { 43731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu if (logger.isEnabledFor(Level.WARN)) { 43831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu FormattingTuple ft = MessageFormatter.format(format, arg1, arg2); 43931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu logger.log(FQCN, Level.WARN, ft.getMessage(), ft.getThrowable()); 44031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 44131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 44231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 44331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 44431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Log a message at level WARN according to the specified format and 44531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * arguments. 44631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 44731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * <p> 44831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * This form avoids superfluous object creation when the logger is disabled 44931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * for the WARN level. 45031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * </p> 45131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 45231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param format 45331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the format string 45431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param argArray 45531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * an array of arguments 45631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 45731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public void warn(String format, Object... argArray) { 45831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu if (logger.isEnabledFor(Level.WARN)) { 45931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu FormattingTuple ft = MessageFormatter.arrayFormat(format, argArray); 46031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu logger.log(FQCN, Level.WARN, ft.getMessage(), ft.getThrowable()); 46131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 46231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 46331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 46431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 46531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Log an exception (throwable) at the WARN level with an accompanying 46631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * message. 46731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 46831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param msg 46931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the message accompanying the exception 47031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param t 47131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the exception (throwable) to log 47231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 47331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public void warn(String msg, Throwable t) { 47431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu logger.log(FQCN, Level.WARN, msg, t); 47531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 47631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 47731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 47831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Is this logger instance enabled for level ERROR? 47931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 48031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @return True if this Logger is enabled for level ERROR, false otherwise. 48131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 48231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public boolean isErrorEnabled() { 48331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu return logger.isEnabledFor(Level.ERROR); 48431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 48531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 48631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 48731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Log a message object at the ERROR level. 48831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 48931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param msg 49031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * - the message object to be logged 49131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 49231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public void error(String msg) { 49331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu logger.log(FQCN, Level.ERROR, msg, null); 49431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 49531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 49631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 49731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Log a message at the ERROR level according to the specified format and 49831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * argument. 49931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 50031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * <p> 50131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * This form avoids superfluous object creation when the logger is disabled 50231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * for the ERROR level. 50331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * </p> 50431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 50531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param format 50631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the format string 50731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param arg 50831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the argument 50931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 51031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public void error(String format, Object arg) { 51131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu if (logger.isEnabledFor(Level.ERROR)) { 51231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu FormattingTuple ft = MessageFormatter.format(format, arg); 51331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu logger.log(FQCN, Level.ERROR, ft.getMessage(), ft.getThrowable()); 51431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 51531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 51631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 51731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 51831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Log a message at the ERROR level according to the specified format and 51931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * arguments. 52031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 52131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * <p> 52231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * This form avoids superfluous object creation when the logger is disabled 52331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * for the ERROR level. 52431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * </p> 52531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 52631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param format 52731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the format string 52831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param arg1 52931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the first argument 53031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param arg2 53131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the second argument 53231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 53331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public void error(String format, Object arg1, Object arg2) { 53431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu if (logger.isEnabledFor(Level.ERROR)) { 53531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu FormattingTuple ft = MessageFormatter.format(format, arg1, arg2); 53631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu logger.log(FQCN, Level.ERROR, ft.getMessage(), ft.getThrowable()); 53731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 53831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 53931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 54031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 54131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Log a message at level ERROR according to the specified format and 54231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * arguments. 54331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 54431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * <p> 54531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * This form avoids superfluous object creation when the logger is disabled 54631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * for the ERROR level. 54731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * </p> 54831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 54931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param format 55031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the format string 55131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param argArray 55231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * an array of arguments 55331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 55431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public void error(String format, Object... argArray) { 55531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu if (logger.isEnabledFor(Level.ERROR)) { 55631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu FormattingTuple ft = MessageFormatter.arrayFormat(format, argArray); 55731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu logger.log(FQCN, Level.ERROR, ft.getMessage(), ft.getThrowable()); 55831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 55931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 56031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 56131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 56231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Log an exception (throwable) at the ERROR level with an accompanying 56331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * message. 56431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 56531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param msg 56631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the message accompanying the exception 56731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param t 56831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the exception (throwable) to log 56931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 57031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public void error(String msg, Throwable t) { 57131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu logger.log(FQCN, Level.ERROR, msg, t); 57231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 57331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 57431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public void log(Marker marker, String callerFQCN, int level, String msg, Object[] argArray, Throwable t) { 57531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu Level log4jLevel; 57631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu switch (level) { 57731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu case LocationAwareLogger.TRACE_INT: 57831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu log4jLevel = traceCapable ? Level.TRACE : Level.DEBUG; 57931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu break; 58031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu case LocationAwareLogger.DEBUG_INT: 58131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu log4jLevel = Level.DEBUG; 58231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu break; 58331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu case LocationAwareLogger.INFO_INT: 58431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu log4jLevel = Level.INFO; 58531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu break; 58631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu case LocationAwareLogger.WARN_INT: 58731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu log4jLevel = Level.WARN; 58831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu break; 58931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu case LocationAwareLogger.ERROR_INT: 59031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu log4jLevel = Level.ERROR; 59131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu break; 59231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu default: 59331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu throw new IllegalStateException("Level number " + level + " is not recognized."); 59431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 59531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu logger.log(callerFQCN, log4jLevel, msg, t); 59631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 59788c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu 59888c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu} 599