17ba0605dc97fb81bde8311510d27b3ccba170008Ceki Gulcu/** 27ba0605dc97fb81bde8311510d27b3ccba170008Ceki Gulcu * Copyright (c) 2004-2011 QOS.ch 388c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu * All rights reserved. 488c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu * 57ba0605dc97fb81bde8311510d27b3ccba170008Ceki Gulcu * Permission is hereby granted, free of charge, to any person obtaining 67ba0605dc97fb81bde8311510d27b3ccba170008Ceki 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, 97ba0605dc97fb81bde8311510d27b3ccba170008Ceki Gulcu * distribute, sublicense, and/or sell copies of the Software, and to 107ba0605dc97fb81bde8311510d27b3ccba170008Ceki Gulcu * permit persons to whom the Software is furnished to do so, subject to 117ba0605dc97fb81bde8311510d27b3ccba170008Ceki Gulcu * the following conditions: 127ba0605dc97fb81bde8311510d27b3ccba170008Ceki Gulcu * 137ba0605dc97fb81bde8311510d27b3ccba170008Ceki Gulcu * The above copyright notice and this permission notice shall be 147ba0605dc97fb81bde8311510d27b3ccba170008Ceki Gulcu * included in all copies or substantial portions of the Software. 1588c4c456766193e012eb890e2208473d99b91f83Ceki 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 187ba0605dc97fb81bde8311510d27b3ccba170008Ceki Gulcu * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 197ba0605dc97fb81bde8311510d27b3ccba170008Ceki Gulcu * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 207ba0605dc97fb81bde8311510d27b3ccba170008Ceki Gulcu * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 217ba0605dc97fb81bde8311510d27b3ccba170008Ceki Gulcu * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 227ba0605dc97fb81bde8311510d27b3ccba170008Ceki Gulcu * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 2388c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu * 2488c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu */ 2588c4c456766193e012eb890e2208473d99b91f83Ceki Gulcupackage org.slf4j.impl; 2688c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu 2788c4c456766193e012eb890e2208473d99b91f83Ceki Gulcuimport java.util.logging.Level; 2888c4c456766193e012eb890e2208473d99b91f83Ceki Gulcuimport java.util.logging.LogRecord; 2988c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu 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/** 389f10490a05f7344f4b3ef657e8991f5d51934e2fCeki Gulcu * A wrapper over {@link java.util.logging.Logger java.util.logging.Logger} in 399f10490a05f7344f4b3ef657e8991f5d51934e2fCeki Gulcu * conformity with the {@link Logger} interface. Note that the logging levels 409f10490a05f7344f4b3ef657e8991f5d51934e2fCeki Gulcu * mentioned in this class refer to those defined in the java.util.logging 4188c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu * package. 4288c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu * 4388c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu * @author Ceki Gülcü 4488c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu * @author Peter Royal 4588c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu */ 4631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcupublic final class JDK14LoggerAdapter extends MarkerIgnoringBase implements LocationAwareLogger { 4731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 4831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu private static final long serialVersionUID = -8053026990503422791L; 4931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 5031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu transient final java.util.logging.Logger logger; 5131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 5231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu // WARN: JDK14LoggerAdapter constructor should have only package access so 5331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu // that only JDK14LoggerFactory be able to create one. 5431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu JDK14LoggerAdapter(java.util.logging.Logger logger) { 5531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu this.logger = logger; 5631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu this.name = logger.getName(); 5731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 5831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 5931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 6031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Is this logger instance enabled for the FINEST level? 6131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 6231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @return True if this Logger is enabled for level FINEST, false otherwise. 6331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 6431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public boolean isTraceEnabled() { 6531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu return logger.isLoggable(Level.FINEST); 6631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 6731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 6831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 6931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Log a message object at level FINEST. 7031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 7131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param msg 7231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * - the message object to be logged 7331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 7431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public void trace(String msg) { 7531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu if (logger.isLoggable(Level.FINEST)) { 7631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu log(SELF, Level.FINEST, msg, null); 7731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 7831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 7931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 8031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 8131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Log a message at level FINEST according to the specified format and 8231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * argument. 8331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 8431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * <p> 8531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * This form avoids superfluous object creation when the logger is disabled 8631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * for level FINEST. 8731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * </p> 8831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 8931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param format 9031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the format string 9131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param arg 9231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the argument 9331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 9431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public void trace(String format, Object arg) { 9531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu if (logger.isLoggable(Level.FINEST)) { 9631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu FormattingTuple ft = MessageFormatter.format(format, arg); 9731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu log(SELF, Level.FINEST, ft.getMessage(), ft.getThrowable()); 9831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 9931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 10031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 10131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 10231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Log a message at level FINEST according to the specified format and 10331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * arguments. 10431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 10531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * <p> 10631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * This form avoids superfluous object creation when the logger is disabled 10731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * for the FINEST level. 10831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * </p> 10931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 11031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param format 11131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the format string 11231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param arg1 11331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the first argument 11431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param arg2 11531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the second argument 11631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 11731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public void trace(String format, Object arg1, Object arg2) { 11831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu if (logger.isLoggable(Level.FINEST)) { 11931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu FormattingTuple ft = MessageFormatter.format(format, arg1, arg2); 12031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu log(SELF, Level.FINEST, ft.getMessage(), ft.getThrowable()); 12131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 12231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 12331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 12431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 12531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Log a message at level FINEST according to the specified format and 12631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * arguments. 12731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 12831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * <p> 12931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * This form avoids superfluous object creation when the logger is disabled 13031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * for the FINEST level. 13131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * </p> 13231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 13331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param format 13431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the format string 13531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param argArray 13631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * an array of arguments 13731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 13831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public void trace(String format, Object... argArray) { 13931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu if (logger.isLoggable(Level.FINEST)) { 14031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu FormattingTuple ft = MessageFormatter.arrayFormat(format, argArray); 14131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu log(SELF, Level.FINEST, ft.getMessage(), ft.getThrowable()); 14231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 14331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 14431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 14531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 14631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Log an exception (throwable) at level FINEST with an accompanying message. 14731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 14831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param msg 14931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the message accompanying the exception 15031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param t 15131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the exception (throwable) to log 15231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 15331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public void trace(String msg, Throwable t) { 15431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu if (logger.isLoggable(Level.FINEST)) { 15531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu log(SELF, Level.FINEST, msg, t); 15631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 15731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 15831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 15931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 16031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Is this logger instance enabled for the FINE level? 16131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 16231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @return True if this Logger is enabled for level FINE, false otherwise. 16331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 16431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public boolean isDebugEnabled() { 16531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu return logger.isLoggable(Level.FINE); 16631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 16731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 16831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 16931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Log a message object at level FINE. 17031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 17131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param msg 17231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * - the message object to be logged 17331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 17431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public void debug(String msg) { 17531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu if (logger.isLoggable(Level.FINE)) { 17631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu log(SELF, Level.FINE, msg, null); 17731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 17831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 17931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 18031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 18131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Log a message at level FINE according to the specified format and argument. 18231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 18331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * <p> 18431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * This form avoids superfluous object creation when the logger is disabled 18531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * for level FINE. 18631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * </p> 18731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 18831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param format 18931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the format string 19031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param arg 19131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the argument 19231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 19331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public void debug(String format, Object arg) { 19431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu if (logger.isLoggable(Level.FINE)) { 19531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu FormattingTuple ft = MessageFormatter.format(format, arg); 19631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu log(SELF, Level.FINE, ft.getMessage(), ft.getThrowable()); 19731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 19831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 19931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 20031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 20131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Log a message at level FINE according to the specified format and 20231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * arguments. 20331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 20431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * <p> 20531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * This form avoids superfluous object creation when the logger is disabled 20631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * for the FINE level. 20731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * </p> 20831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 20931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param format 21031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the format string 21131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param arg1 21231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the first argument 21331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param arg2 21431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the second argument 21531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 21631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public void debug(String format, Object arg1, Object arg2) { 21731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu if (logger.isLoggable(Level.FINE)) { 21831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu FormattingTuple ft = MessageFormatter.format(format, arg1, arg2); 21931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu log(SELF, Level.FINE, ft.getMessage(), ft.getThrowable()); 22031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 22131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 22231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 22331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 22431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Log a message at level FINE according to the specified format and 22531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * arguments. 22631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 22731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * <p> 22831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * This form avoids superfluous object creation when the logger is disabled 22931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * for the FINE level. 23031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * </p> 23131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 23231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param format 23331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the format string 23431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param argArray 23531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * an array of arguments 23631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 23731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public void debug(String format, Object... argArray) { 23831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu if (logger.isLoggable(Level.FINE)) { 23931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu FormattingTuple ft = MessageFormatter.arrayFormat(format, argArray); 24031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu log(SELF, Level.FINE, ft.getMessage(), ft.getThrowable()); 24131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 24231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 24331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 24431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 24531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Log an exception (throwable) at level FINE with an accompanying message. 24631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 24731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param msg 24831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the message accompanying the exception 24931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param t 25031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the exception (throwable) to log 25131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 25231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public void debug(String msg, Throwable t) { 25331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu if (logger.isLoggable(Level.FINE)) { 25431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu log(SELF, Level.FINE, msg, t); 25531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 25631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 25731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 25831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 25931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Is this logger instance enabled for the INFO level? 26031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 26131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @return True if this Logger is enabled for the INFO level, false otherwise. 26231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 26331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public boolean isInfoEnabled() { 26431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu return logger.isLoggable(Level.INFO); 26531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 26631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 26731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 26831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Log a message object at the INFO level. 26931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 27031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param msg 27131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * - the message object to be logged 27231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 27331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public void info(String msg) { 27431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu if (logger.isLoggable(Level.INFO)) { 27531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu log(SELF, Level.INFO, msg, null); 27631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 27731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 27831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 27931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 28031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Log a message at level INFO according to the specified format and argument. 28131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 28231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * <p> 28331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * This form avoids superfluous object creation when the logger is disabled 28431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * for the INFO level. 28531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * </p> 28631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 28731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param format 28831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the format string 28931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param arg 29031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the argument 29131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 29231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public void info(String format, Object arg) { 29331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu if (logger.isLoggable(Level.INFO)) { 29431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu FormattingTuple ft = MessageFormatter.format(format, arg); 29531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu log(SELF, Level.INFO, ft.getMessage(), ft.getThrowable()); 29631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 29731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 29831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 29931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 30031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Log a message at the INFO level according to the specified format and 30131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * arguments. 30231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 30331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * <p> 30431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * This form avoids superfluous object creation when the logger is disabled 30531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * for the INFO level. 30631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * </p> 30731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 30831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param format 30931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the format string 31031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param arg1 31131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the first argument 31231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param arg2 31331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the second argument 31431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 31531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public void info(String format, Object arg1, Object arg2) { 31631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu if (logger.isLoggable(Level.INFO)) { 31731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu FormattingTuple ft = MessageFormatter.format(format, arg1, arg2); 31831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu log(SELF, Level.INFO, ft.getMessage(), ft.getThrowable()); 31931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 32031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 32131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 32231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 32331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Log a message at level INFO according to the specified format and 32431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * arguments. 32531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 32631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * <p> 32731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * This form avoids superfluous object creation when the logger is disabled 32831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * for the INFO level. 32931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * </p> 33031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 33131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param format 33231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the format string 33331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param argArray 33431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * an array of arguments 33531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 33631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public void info(String format, Object... argArray) { 33731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu if (logger.isLoggable(Level.INFO)) { 33831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu FormattingTuple ft = MessageFormatter.arrayFormat(format, argArray); 33931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu log(SELF, Level.INFO, ft.getMessage(), ft.getThrowable()); 34031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 34131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 34231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 34331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 34431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Log an exception (throwable) at the INFO level with an accompanying 34531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * message. 34631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 34731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param msg 34831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the message accompanying the exception 34931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param t 35031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the exception (throwable) to log 35131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 35231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public void info(String msg, Throwable t) { 35331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu if (logger.isLoggable(Level.INFO)) { 35431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu log(SELF, Level.INFO, msg, t); 35531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 35631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 35731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 35831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 35931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Is this logger instance enabled for the WARNING level? 36031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 36131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @return True if this Logger is enabled for the WARNING level, false 36231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * otherwise. 36331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 36431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public boolean isWarnEnabled() { 36531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu return logger.isLoggable(Level.WARNING); 36631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 36731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 36831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 36931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Log a message object at the WARNING level. 37031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 37131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param msg 37231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * - the message object to be logged 37331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 37431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public void warn(String msg) { 37531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu if (logger.isLoggable(Level.WARNING)) { 37631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu log(SELF, Level.WARNING, msg, null); 37731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 37831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 37931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 38031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 38131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Log a message at the WARNING level according to the specified format and 38231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * argument. 38331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 38431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * <p> 38531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * This form avoids superfluous object creation when the logger is disabled 38631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * for the WARNING level. 38731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * </p> 38831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 38931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param format 39031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the format string 39131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param arg 39231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the argument 39331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 39431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public void warn(String format, Object arg) { 39531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu if (logger.isLoggable(Level.WARNING)) { 39631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu FormattingTuple ft = MessageFormatter.format(format, arg); 39731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu log(SELF, Level.WARNING, ft.getMessage(), ft.getThrowable()); 39831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 39931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 40031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 40131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 40231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Log a message at the WARNING level according to the specified format and 40331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * arguments. 40431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 40531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * <p> 40631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * This form avoids superfluous object creation when the logger is disabled 40731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * for the WARNING level. 40831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * </p> 40931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 41031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param format 41131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the format string 41231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param arg1 41331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the first argument 41431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param arg2 41531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the second argument 41631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 41731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public void warn(String format, Object arg1, Object arg2) { 41831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu if (logger.isLoggable(Level.WARNING)) { 41931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu FormattingTuple ft = MessageFormatter.format(format, arg1, arg2); 42031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu log(SELF, Level.WARNING, ft.getMessage(), ft.getThrowable()); 42131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 42231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 42331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 42431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 42531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Log a message at level WARNING according to the specified format and 42631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * arguments. 42731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 42831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * <p> 42931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * This form avoids superfluous object creation when the logger is disabled 43031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * for the WARNING level. 43131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * </p> 43231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 43331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param format 43431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the format string 43531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param argArray 43631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * an array of arguments 43731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 43831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public void warn(String format, Object... argArray) { 43931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu if (logger.isLoggable(Level.WARNING)) { 44031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu FormattingTuple ft = MessageFormatter.arrayFormat(format, argArray); 44131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu log(SELF, Level.WARNING, ft.getMessage(), ft.getThrowable()); 44231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 44331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 44431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 44531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 44631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Log an exception (throwable) at the WARNING level with an accompanying 44731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * message. 44831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 44931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param msg 45031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the message accompanying the exception 45131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param t 45231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the exception (throwable) to log 45331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 45431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public void warn(String msg, Throwable t) { 45531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu if (logger.isLoggable(Level.WARNING)) { 45631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu log(SELF, Level.WARNING, msg, t); 45731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 45831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 45931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 46031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 46131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Is this logger instance enabled for level SEVERE? 46231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 46331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @return True if this Logger is enabled for level SEVERE, false otherwise. 46431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 46531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public boolean isErrorEnabled() { 46631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu return logger.isLoggable(Level.SEVERE); 46731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 46831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 46931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 47031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Log a message object at the SEVERE level. 47131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 47231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param msg 47331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * - the message object to be logged 47431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 47531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public void error(String msg) { 47631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu if (logger.isLoggable(Level.SEVERE)) { 47731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu log(SELF, Level.SEVERE, msg, null); 47831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 47931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 48031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 48131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 48231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Log a message at the SEVERE level according to the specified format and 48331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * argument. 48431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 48531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * <p> 48631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * This form avoids superfluous object creation when the logger is disabled 48731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * for the SEVERE level. 48831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * </p> 48931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 49031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param format 49131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the format string 49231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param arg 49331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the argument 49431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 49531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public void error(String format, Object arg) { 49631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu if (logger.isLoggable(Level.SEVERE)) { 49731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu FormattingTuple ft = MessageFormatter.format(format, arg); 49831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu log(SELF, Level.SEVERE, ft.getMessage(), ft.getThrowable()); 49931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 50031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 50131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 50231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 50331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Log a message at the SEVERE level according to the specified format and 50431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * arguments. 50531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 50631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * <p> 50731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * This form avoids superfluous object creation when the logger is disabled 50831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * for the SEVERE level. 50931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * </p> 51031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 51131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param format 51231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the format string 51331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param arg1 51431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the first argument 51531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param arg2 51631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the second argument 51731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 51831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public void error(String format, Object arg1, Object arg2) { 51931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu if (logger.isLoggable(Level.SEVERE)) { 52031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu FormattingTuple ft = MessageFormatter.format(format, arg1, arg2); 52131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu log(SELF, Level.SEVERE, ft.getMessage(), ft.getThrowable()); 52231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 52331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 52431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 52531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 52631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Log a message at level SEVERE according to the specified format and 52731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * arguments. 52831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 52931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * <p> 53031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * This form avoids superfluous object creation when the logger is disabled 53131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * for the SEVERE level. 53231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * </p> 53331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 53431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param format 53531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the format string 53631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param arguments 53731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * an array of arguments 53831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 53931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public void error(String format, Object... arguments) { 54031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu if (logger.isLoggable(Level.SEVERE)) { 54131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu FormattingTuple ft = MessageFormatter.arrayFormat(format, arguments); 54231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu log(SELF, Level.SEVERE, ft.getMessage(), ft.getThrowable()); 54331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 54431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 54531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 54631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 54731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Log an exception (throwable) at the SEVERE level with an accompanying 54831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * message. 54931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 55031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param msg 55131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the message accompanying the exception 55231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param t 55331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the exception (throwable) to log 55431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 55531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public void error(String msg, Throwable t) { 55631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu if (logger.isLoggable(Level.SEVERE)) { 55731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu log(SELF, Level.SEVERE, msg, t); 55831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 55931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 56031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 56131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 56231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Log the message at the specified level with the specified throwable if any. 56331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * This method creates a LogRecord and fills in caller date before calling 56431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * this instance's JDK14 logger. 56531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 56631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * See bug report #13 for more details. 56731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 56831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param level 56931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param msg 57031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param t 57131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 57231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu private void log(String callerFQCN, Level level, String msg, Throwable t) { 57331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu // millis and thread are filled by the constructor 57431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu LogRecord record = new LogRecord(level, msg); 57531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu record.setLoggerName(getName()); 57631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu record.setThrown(t); 57731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu fillCallerData(callerFQCN, record); 57831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu logger.log(record); 57931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 58031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 58131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 58231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu static String SELF = JDK14LoggerAdapter.class.getName(); 58331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu static String SUPER = MarkerIgnoringBase.class.getName(); 58431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 58531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 58631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Fill in caller data if possible. 58731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 58831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param record 58931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * The record to update 59031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 59131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu final private void fillCallerData(String callerFQCN, LogRecord record) { 59231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu StackTraceElement[] steArray = new Throwable().getStackTrace(); 59331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 59431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu int selfIndex = -1; 59531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu for (int i = 0; i < steArray.length; i++) { 59631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu final String className = steArray[i].getClassName(); 59731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu if (className.equals(callerFQCN) || className.equals(SUPER)) { 59831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu selfIndex = i; 59931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu break; 60031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 60131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 60231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 60331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu int found = -1; 60431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu for (int i = selfIndex + 1; i < steArray.length; i++) { 60531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu final String className = steArray[i].getClassName(); 60631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu if (!(className.equals(callerFQCN) || className.equals(SUPER))) { 60731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu found = i; 60831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu break; 60931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 61031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 61131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 61231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu if (found != -1) { 61331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu StackTraceElement ste = steArray[found]; 61431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu // setting the class name has the side effect of setting 61531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu // the needToInferCaller variable to false. 61631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu record.setSourceClassName(ste.getClassName()); 61731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu record.setSourceMethodName(ste.getMethodName()); 61831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 61931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 62031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 62131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public void log(Marker marker, String callerFQCN, int level, String message, Object[] argArray, Throwable t) { 62231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu Level julLevel; 62331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu switch (level) { 62431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu case LocationAwareLogger.TRACE_INT: 62531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu julLevel = Level.FINEST; 62631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu break; 62731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu case LocationAwareLogger.DEBUG_INT: 62831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu julLevel = Level.FINE; 62931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu break; 63031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu case LocationAwareLogger.INFO_INT: 63131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu julLevel = Level.INFO; 63231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu break; 63331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu case LocationAwareLogger.WARN_INT: 63431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu julLevel = Level.WARNING; 63531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu break; 63631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu case LocationAwareLogger.ERROR_INT: 63731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu julLevel = Level.SEVERE; 63831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu break; 63931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu default: 64031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu throw new IllegalStateException("Level number " + level + " is not recognized."); 64131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 64231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu // the logger.isLoggable check avoids the unconditional 64331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu // construction of location data for disabled log 64431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu // statements. As of 2008-07-31, callers of this method 64531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu // do not perform this check. See also 64631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu // http://bugzilla.slf4j.org/show_bug.cgi?id=90 64731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu if (logger.isLoggable(julLevel)) { 64831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu log(callerFQCN, julLevel, message, t); 64931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 65031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 65188c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu} 652