1054ed393bd95a6f7c34398accc5cefe36fae8989Ceki Gulcu/* 2054ed393bd95a6f7c34398accc5cefe36fae8989Ceki Gulcu * Copyright 2001-2004 The Apache Software Foundation. 37ba0605dc97fb81bde8311510d27b3ccba170008Ceki Gulcu * 4054ed393bd95a6f7c34398accc5cefe36fae8989Ceki Gulcu * Licensed under the Apache License, Version 2.0 (the "License"); 5054ed393bd95a6f7c34398accc5cefe36fae8989Ceki Gulcu * you may not use this file except in compliance with the License. 6054ed393bd95a6f7c34398accc5cefe36fae8989Ceki Gulcu * You may obtain a copy of the License at 77ba0605dc97fb81bde8311510d27b3ccba170008Ceki Gulcu * 8054ed393bd95a6f7c34398accc5cefe36fae8989Ceki Gulcu * http://www.apache.org/licenses/LICENSE-2.0 97ba0605dc97fb81bde8311510d27b3ccba170008Ceki Gulcu * 10054ed393bd95a6f7c34398accc5cefe36fae8989Ceki Gulcu * Unless required by applicable law or agreed to in writing, software 11054ed393bd95a6f7c34398accc5cefe36fae8989Ceki Gulcu * distributed under the License is distributed on an "AS IS" BASIS, 12054ed393bd95a6f7c34398accc5cefe36fae8989Ceki Gulcu * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13054ed393bd95a6f7c34398accc5cefe36fae8989Ceki Gulcu * See the License for the specific language governing permissions and 14054ed393bd95a6f7c34398accc5cefe36fae8989Ceki Gulcu * limitations under the License. 1588c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu */ 16054ed393bd95a6f7c34398accc5cefe36fae8989Ceki Gulcu 1788c4c456766193e012eb890e2208473d99b91f83Ceki Gulcupackage org.apache.log4j; 1888c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu 19393d8899a64ae7562afe44105b7938b0fd9218a9Ceki Gulcuimport org.apache.log4j.helpers.NullEnumeration; 2088c4c456766193e012eb890e2208473d99b91f83Ceki Gulcuimport org.slf4j.LoggerFactory; 2188c4c456766193e012eb890e2208473d99b91f83Ceki Gulcuimport org.slf4j.Marker; 2288c4c456766193e012eb890e2208473d99b91f83Ceki Gulcuimport org.slf4j.MarkerFactory; 2388c4c456766193e012eb890e2208473d99b91f83Ceki Gulcuimport org.slf4j.spi.LocationAwareLogger; 2488c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu 25393d8899a64ae7562afe44105b7938b0fd9218a9Ceki Gulcuimport java.util.Enumeration; 26393d8899a64ae7562afe44105b7938b0fd9218a9Ceki Gulcu 2788c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu/** 2888c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu * <p> 2988c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu * This class is a minimal implementation of the original 3088c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu * <code>org.apache.log4j.Category</code> class (as found in log4j 1.2) by 3188c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu * delegation of all calls to a {@link org.slf4j.Logger} instance. 3288c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu * </p> 33b6e0c251129fb0eb4da237cbb9a99517599b6f5dCeki Gulcu * 3488c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu * <p> 3588c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu * Log4j's <code>trace</code>, <code>debug()</code>, <code>info()</code>, 3688c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu * <code>warn()</code>, <code>error()</code> printing methods are directly 3788c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu * mapped to their SLF4J equivalents. Log4j's <code>fatal()</code> printing 3899c9eb8a756df79e94234f00a348b0ee6222098eCeki Gulcu * method is mapped to SLF4J's <code>error()</code> method with a FATAL marker. 39b6e0c251129fb0eb4da237cbb9a99517599b6f5dCeki Gulcu * 4088c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu * @author Sébastien Pennec 4188c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu * @author Ceki Gülcü 4288c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu */ 43e14afa68f0857ddc3dd925a1cf7c28c17184069dCeki Gulcu@SuppressWarnings("rawtypes") 4488c4c456766193e012eb890e2208473d99b91f83Ceki Gulcupublic class Category { 4588c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu 4631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu private static final String CATEGORY_FQCN = Category.class.getName(); 4731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 4831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu private String name; 4931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 5031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu protected org.slf4j.Logger slf4jLogger; 5131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu private org.slf4j.spi.LocationAwareLogger locationAwareLogger; 5231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 5331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu private static Marker FATAL_MARKER = MarkerFactory.getMarker("FATAL"); 5431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 5531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu Category(String name) { 5631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu this.name = name; 5731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu slf4jLogger = LoggerFactory.getLogger(name); 5831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu if (slf4jLogger instanceof LocationAwareLogger) { 5931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu locationAwareLogger = (LocationAwareLogger) slf4jLogger; 6031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 6131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 6231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 6331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public static Category getInstance(Class clazz) { 6431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu return Log4jLoggerFactory.getLogger(clazz.getName()); 6531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 6631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 6731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public static Category getInstance(String name) { 6831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu return Log4jLoggerFactory.getLogger(name); 6931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 7031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 7131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public final Category getParent() { 7231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu return null; 7331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 7431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 7531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 7631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Returns the obvious. 7731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 7831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @return 7931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 8031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public String getName() { 8131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu return name; 8231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 8331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 84a0ebd0a43bbf07dd0b5560e8eb4a62929e06efafCeki Gulcu public Appender getAppender(String name) { 85a0ebd0a43bbf07dd0b5560e8eb4a62929e06efafCeki Gulcu return null; 86a0ebd0a43bbf07dd0b5560e8eb4a62929e06efafCeki Gulcu } 87a0ebd0a43bbf07dd0b5560e8eb4a62929e06efafCeki Gulcu 8831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public Enumeration getAllAppenders() { 8931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu return NullEnumeration.getInstance(); 9031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 9131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 9231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 9331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Return the level in effect for this category/logger. 9431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 9531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * <p> 9631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * The result is computed by simulation. 9731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 9831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @return 9931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 10031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public Level getEffectiveLevel() { 10131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu if (slf4jLogger.isTraceEnabled()) { 10231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu return Level.TRACE; 10331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 10431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu if (slf4jLogger.isDebugEnabled()) { 10531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu return Level.DEBUG; 10631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 10731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu if (slf4jLogger.isInfoEnabled()) { 10831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu return Level.INFO; 10931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 11031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu if (slf4jLogger.isWarnEnabled()) { 11131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu return Level.WARN; 11231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 11331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu return Level.ERROR; 11431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 11531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 11631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 11731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Returns the assigned {@link Level}, if any, for this Category. This 11831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * implementation always returns null. 11931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 12031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @return Level - the assigned Level, can be <code>null</code>. 12131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 12231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu final public Level getLevel() { 12331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu return null; 12431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 12531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 12631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 12731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @deprecated Please use {@link #getLevel} instead. 12831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 12931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu final public Level getPriority() { 13031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu return null; 13131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 13231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 13331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 13431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Delegates to {@link org.slf4j.Logger#isDebugEnabled} method in SLF4J 13531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 13631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public boolean isDebugEnabled() { 13731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu return slf4jLogger.isDebugEnabled(); 13831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 13931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 14031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 14131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Delegates to {@link org.slf4j.Logger#isInfoEnabled} method in SLF4J 14231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 14331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public boolean isInfoEnabled() { 14431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu return slf4jLogger.isInfoEnabled(); 14531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 14631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 14731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 14831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Delegates tob {@link org.slf4j.Logger#isWarnEnabled} method in SLF4J 14931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 15031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public boolean isWarnEnabled() { 15131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu return slf4jLogger.isWarnEnabled(); 15231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 15331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 15431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 15531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Delegates to {@link org.slf4j.Logger#isErrorEnabled} method in SLF4J 15631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 15731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public boolean isErrorEnabled() { 15831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu return slf4jLogger.isErrorEnabled(); 15931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 16031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 16131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 16231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Determines whether the priority passed as parameter is enabled in the 16331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * underlying SLF4J logger. Each log4j priority is mapped directly to its 16431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * SLF4J equivalent, except for FATAL which is mapped as ERROR. 16531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * 16631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @param p 16731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * the priority to check against 16831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @return true if this logger is enabled for the given level, false 16931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * otherwise. 17031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 17131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public boolean isEnabledFor(Priority p) { 17231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu switch (p.level) { 17331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu case Level.TRACE_INT: 17431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu return slf4jLogger.isTraceEnabled(); 17531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu case Level.DEBUG_INT: 17631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu return slf4jLogger.isDebugEnabled(); 17731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu case Level.INFO_INT: 17831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu return slf4jLogger.isInfoEnabled(); 17931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu case Level.WARN_INT: 18031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu return slf4jLogger.isWarnEnabled(); 18131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu case Level.ERROR_INT: 18231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu return slf4jLogger.isErrorEnabled(); 18331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu case Priority.FATAL_INT: 18431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu return slf4jLogger.isErrorEnabled(); 18531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 18631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu return false; 18731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 18831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 18931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu void differentiatedLog(Marker marker, String fqcn, int level, Object message, Throwable t) { 19031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 19131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu String m = convertToString(message); 19231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu if (locationAwareLogger != null) { 19331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu locationAwareLogger.log(marker, fqcn, level, m, null, t); 19431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } else { 19531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu switch (level) { 19631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu case LocationAwareLogger.TRACE_INT: 19731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu slf4jLogger.trace(marker, m); 19831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu break; 19931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu case LocationAwareLogger.DEBUG_INT: 20031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu slf4jLogger.debug(marker, m); 20131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu break; 20231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu case LocationAwareLogger.INFO_INT: 20331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu slf4jLogger.info(marker, m); 20431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu break; 20531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu case LocationAwareLogger.WARN_INT: 20631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu slf4jLogger.warn(marker, m); 20731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu break; 20831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu case LocationAwareLogger.ERROR_INT: 20931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu slf4jLogger.error(marker, m); 21031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu break; 21131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 21231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 21331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 21431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 21531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 21631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Delegates to {@link org.slf4j.Logger#debug(String)} method of SLF4J. 21731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 21831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public void debug(Object message) { 21931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu differentiatedLog(null, CATEGORY_FQCN, LocationAwareLogger.DEBUG_INT, message, null); 22031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 22131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 22231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 22331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Delegates to {@link org.slf4j.Logger#debug(String,Throwable)} method in 22431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * SLF4J. 22531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 22631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public void debug(Object message, Throwable t) { 22731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu differentiatedLog(null, CATEGORY_FQCN, LocationAwareLogger.DEBUG_INT, message, t); 22831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 22931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 23031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 23131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Delegates to {@link org.slf4j.Logger#info(String)} method in SLF4J. 23231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 23331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public void info(Object message) { 23431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu differentiatedLog(null, CATEGORY_FQCN, LocationAwareLogger.INFO_INT, message, null); 23531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 23631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 23731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 23831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Delegates to {@link org.slf4j.Logger#info(String,Throwable)} method in 23931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * SLF4J. 24031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 24131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public void info(Object message, Throwable t) { 24231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu differentiatedLog(null, CATEGORY_FQCN, LocationAwareLogger.INFO_INT, message, t); 24331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 24431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 24531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 24631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Delegates to {@link org.slf4j.Logger#warn(String)} method in SLF4J. 24731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 24831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public void warn(Object message) { 24931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu differentiatedLog(null, CATEGORY_FQCN, LocationAwareLogger.WARN_INT, message, null); 25031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 25131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 25231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 25331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Delegates to {@link org.slf4j.Logger#warn(String,Throwable)} method in 25431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * SLF4J. 25531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 25631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public void warn(Object message, Throwable t) { 25731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu differentiatedLog(null, CATEGORY_FQCN, LocationAwareLogger.WARN_INT, message, t); 25831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 25931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 26031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 26131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Delegates to {@link org.slf4j.Logger#error(String)} method in SLF4J. 26231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 26331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public void error(Object message) { 26431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu differentiatedLog(null, CATEGORY_FQCN, LocationAwareLogger.ERROR_INT, message, null); 26531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 26631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 26731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 26831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Delegates to {@link org.slf4j.Logger#error(String,Throwable)} method in 26931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * SLF4J. 27031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 27131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public void error(Object message, Throwable t) { 27231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu differentiatedLog(null, CATEGORY_FQCN, LocationAwareLogger.ERROR_INT, message, t); 27331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 27431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 27531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 27631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Delegates to {@link org.slf4j.Logger#error(String)} method in SLF4J. 27731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 27831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public void fatal(Object message) { 27931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu differentiatedLog(FATAL_MARKER, CATEGORY_FQCN, LocationAwareLogger.ERROR_INT, message, null); 28031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 28131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 28231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 28331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Delegates to {@link org.slf4j.Logger#error(String,Throwable)} method in 28431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * SLF4J. In addition, the call is marked with a marker named "FATAL". 28531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 28631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public void fatal(Object message, Throwable t) { 28731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu differentiatedLog(FATAL_MARKER, CATEGORY_FQCN, LocationAwareLogger.ERROR_INT, message, t); 28831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 28931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 29031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu protected void forcedLog(String FQCN, Priority p, Object msg, Throwable t) { 29131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu log(FQCN, p, msg, t); 29231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 29331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 29431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu // See also http://bugzilla.slf4j.org/show_bug.cgi?id=168 29531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public void log(String FQCN, Priority p, Object msg, Throwable t) { 29631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu int levelInt = priorityToLevelInt(p); 29731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu differentiatedLog(null, FQCN, levelInt, msg, t); 29831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 29931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 30031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public void log(Priority p, Object message, Throwable t) { 30131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu int levelInt = priorityToLevelInt(p); 30231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu differentiatedLog(null, CATEGORY_FQCN, levelInt, message, t); 30331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 30431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 30531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public void log(Priority p, Object message) { 30631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu int levelInt = priorityToLevelInt(p); 30731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu differentiatedLog(null, CATEGORY_FQCN, levelInt, message, null); 30831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 30931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 31031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu private int priorityToLevelInt(Priority p) { 31131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu switch (p.level) { 31231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu case Level.TRACE_INT: 31331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu case Level.X_TRACE_INT: 31431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu return LocationAwareLogger.TRACE_INT; 31531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu case Priority.DEBUG_INT: 31631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu return LocationAwareLogger.DEBUG_INT; 31731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu case Priority.INFO_INT: 31831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu return LocationAwareLogger.INFO_INT; 31931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu case Priority.WARN_INT: 32031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu return LocationAwareLogger.WARN_INT; 32131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu case Priority.ERROR_INT: 32231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu return LocationAwareLogger.ERROR_INT; 32331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu case Priority.FATAL_INT: 32431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu return LocationAwareLogger.ERROR_INT; 32531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu default: 32631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu throw new IllegalStateException("Unknown Priority " + p); 32731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 32831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 32931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 33031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu protected final String convertToString(Object message) { 33131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu if (message == null) { 33231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu return (String) message; 33331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } else { 33431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu return message.toString(); 33531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 33631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 33731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 33831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public void setAdditivity(boolean additive) { 33931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu // nothing to do 34031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 34131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 34231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public void addAppender(Appender newAppender) { 34331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu // nothing to do 34431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 34531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 34631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public void setLevel(Level level) { 34731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu // nothing to do 34831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 3493f776eb758fd59429bb654f594d9c8feb2d9574cChristian Trutz 35088c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu} 351