[jboss-svn-commits] JBoss Common SVN: r4001 - jboss-logging and 7 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Mon Feb 8 20:07:37 EST 2010
Author: david.lloyd at jboss.com
Date: 2010-02-08 20:07:37 -0500 (Mon, 08 Feb 2010)
New Revision: 4001
Added:
jboss-logging/
jboss-logging/branches/
jboss-logging/tags/
jboss-logging/trunk/
jboss-logging/trunk/pom.xml
jboss-logging/trunk/src/
jboss-logging/trunk/src/main/
jboss-logging/trunk/src/main/java/
jboss-logging/trunk/src/main/java/org/
jboss-logging/trunk/src/main/java/org/jboss/
jboss-logging/trunk/src/main/java/org/jboss/logging/
jboss-logging/trunk/src/main/java/org/jboss/logging/AbstractLoggerProvider.java
jboss-logging/trunk/src/main/java/org/jboss/logging/AbstractMdcLoggerProvider.java
jboss-logging/trunk/src/main/java/org/jboss/logging/JBossLogManagerLogger.java
jboss-logging/trunk/src/main/java/org/jboss/logging/JBossLogManagerProvider.java
jboss-logging/trunk/src/main/java/org/jboss/logging/JBossLogRecord.java
jboss-logging/trunk/src/main/java/org/jboss/logging/JDKLevel.java
jboss-logging/trunk/src/main/java/org/jboss/logging/JDKLogger.java
jboss-logging/trunk/src/main/java/org/jboss/logging/JDKLoggerProvider.java
jboss-logging/trunk/src/main/java/org/jboss/logging/Log4jLogger.java
jboss-logging/trunk/src/main/java/org/jboss/logging/Log4jLoggerProvider.java
jboss-logging/trunk/src/main/java/org/jboss/logging/Logger.java
jboss-logging/trunk/src/main/java/org/jboss/logging/LoggerProvider.java
jboss-logging/trunk/src/main/java/org/jboss/logging/LoggerProviders.java
jboss-logging/trunk/src/main/java/org/jboss/logging/SerializedLogger.java
jboss-logging/trunk/src/main/java/org/jboss/logging/Slf4jLocationAwareLogger.java
jboss-logging/trunk/src/main/java/org/jboss/logging/Slf4jLogger.java
jboss-logging/trunk/src/main/java/org/jboss/logging/Slf4jLoggerProvider.java
Log:
Initial import - jboss-logging 3.x
Added: jboss-logging/trunk/pom.xml
===================================================================
--- jboss-logging/trunk/pom.xml (rev 0)
+++ jboss-logging/trunk/pom.xml 2010-02-09 01:07:37 UTC (rev 4001)
@@ -0,0 +1,122 @@
+<!--
+ ~ JBoss, Home of Professional Open Source.
+ ~ Copyright 2010, Red Hat Middleware LLC, and individual contributors
+ ~ as indicated by the @author tags. See the copyright.txt file in the
+ ~ distribution for a full listing of individual contributors.
+ ~
+ ~ This is free software; you can redistribute it and/or modify it
+ ~ under the terms of the GNU Lesser General Public License as
+ ~ published by the Free Software Foundation; either version 2.1 of
+ ~ the License, or (at your option) any later version.
+ ~
+ ~ This software is distributed in the hope that it will be useful,
+ ~ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ ~ Lesser General Public License for more details.
+ ~
+ ~ You should have received a copy of the GNU Lesser General Public
+ ~ License along with this software; if not, write to the Free
+ ~ Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ ~ 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.jboss.logging</groupId>
+ <artifactId>jboss-logging</artifactId>
+ <version>3.0.0.CR1-SNAPSHOT</version>
+ <packaging>jar</packaging>
+ <name>JBoss Logging 3</name>
+ <url>http://www.jboss.org</url>
+ <description>The JBoss Logging Framework</description>
+ <scm>
+ <connection>scm:svn:https://svn.jboss.org/repos/common/common-logging-spi/trunk/</connection>
+ </scm>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.jboss.logmanager</groupId>
+ <artifactId>jboss-logmanager</artifactId>
+ <version>1.2.0.CR1-SNAPSHOT</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ <version>1.2.15</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ <version>1.5.8</version>
+ <scope>provided</scope>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>2.0.2</version>
+ <configuration>
+ <source>1.5</source>
+ <target>1.5</target>
+ </configuration>
+ </plugin>
+ <plugin>
+ <artifactId>maven-source-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>attach-sources</id>
+ <phase>verify</phase>
+ <goals>
+ <goal>jar</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <artifactId>maven-javadoc-plugin</artifactId>
+ <version>2.6.1</version>
+ <executions>
+ <execution>
+ <id>attach-javadocs</id>
+ <phase>verify</phase>
+ <goals>
+ <goal>jar</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <detectJavaApiLink>false</detectJavaApiLink>
+ <detectLinks>false</detectLinks>
+ <doclet>net.gleamynode.apiviz.APIviz</doclet>
+ <docletArtifact>
+ <groupId>org.jboss.apiviz</groupId>
+ <artifactId>apiviz</artifactId>
+ <version>1.2.5.GA</version>
+ </docletArtifact>
+ <doctitle><![CDATA[JBoss Logging ]]>${version}</doctitle>
+ <header><![CDATA[JBoss Logging ]]>${version}</header>
+ <footer><![CDATA[JBoss Logging ]]>${version}</footer>
+ <bottom><![CDATA[<i>Copyright © 2010 JBoss, a division of Red Hat, Inc.</i>]]></bottom>
+ <links>
+ <link>http://java.sun.com/javase/6/docs/api/</link>
+ </links>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+ <distributionManagement>
+ <repository>
+ <id>repository.jboss.org</id>
+ <name>JBoss Maven2 Repository</name>
+ <url>http://repository.jboss.org/maven2</url>
+ </repository>
+ </distributionManagement>
+
+</project>
\ No newline at end of file
Added: jboss-logging/trunk/src/main/java/org/jboss/logging/AbstractLoggerProvider.java
===================================================================
--- jboss-logging/trunk/src/main/java/org/jboss/logging/AbstractLoggerProvider.java (rev 0)
+++ jboss-logging/trunk/src/main/java/org/jboss/logging/AbstractLoggerProvider.java 2010-02-09 01:07:37 UTC (rev 4001)
@@ -0,0 +1,86 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2010, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.logging;
+
+import java.util.ArrayDeque;
+
+abstract class AbstractLoggerProvider {
+
+ private final ThreadLocal<ArrayDeque<Entry>> ndcStack = new ThreadLocal<ArrayDeque<Entry>>();
+
+ public void clearNdc() {
+ ArrayDeque<Entry> stack = ndcStack.get();
+ if (stack != null)
+ stack.clear();
+ }
+
+ public String getNdc() {
+ ArrayDeque<Entry> stack = ndcStack.get();
+ return stack == null || stack.isEmpty() ? null : stack.peek().merged;
+ }
+
+ public int getNdcDepth() {
+ ArrayDeque<Entry> stack = ndcStack.get();
+ return stack == null ? 0 : stack.size();
+ }
+
+ public String peekNdc() {
+ ArrayDeque<Entry> stack = ndcStack.get();
+ return stack == null || stack.isEmpty() ? "" : stack.peek().current;
+ }
+
+ public String popNdc() {
+ ArrayDeque<Entry> stack = ndcStack.get();
+ return stack == null || stack.isEmpty() ? "" : stack.pop().current;
+ }
+
+ public void pushNdc(String message) {
+ ArrayDeque<Entry> stack = ndcStack.get();
+ if (stack == null) {
+ stack = new ArrayDeque<Entry>();
+ ndcStack.set(stack);
+ }
+ stack.push(stack.isEmpty() ? new Entry(message) : new Entry(stack.peek(), message));
+ }
+
+ public void setNdcMaxDepth(int maxDepth) {
+ final ArrayDeque<Entry> stack = ndcStack.get();
+ if (stack != null) while (stack.size() > maxDepth) stack.pop();
+ }
+
+ private static class Entry {
+
+ private String merged;
+ private String current;
+
+ Entry(String current) {
+ merged = current;
+ this.current = current;
+ }
+
+ Entry(Entry parent, String current) {
+ merged = parent.merged + ' ' + current;
+ this.current = current;
+ }
+ }
+}
Added: jboss-logging/trunk/src/main/java/org/jboss/logging/AbstractMdcLoggerProvider.java
===================================================================
--- jboss-logging/trunk/src/main/java/org/jboss/logging/AbstractMdcLoggerProvider.java (rev 0)
+++ jboss-logging/trunk/src/main/java/org/jboss/logging/AbstractMdcLoggerProvider.java 2010-02-09 01:07:37 UTC (rev 4001)
@@ -0,0 +1,55 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2010, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.logging;
+
+import java.util.HashMap;
+import java.util.Map;
+
+abstract class AbstractMdcLoggerProvider extends AbstractLoggerProvider {
+
+ private final ThreadLocal<Map<String, Object>> mdcMap = new ThreadLocal<Map<String, Object>>();
+
+ public Object getMdc(String key) {
+ return mdcMap.get() == null ? null : mdcMap.get().get(key);
+ }
+
+ public Map<String, Object> getMdcMap() {
+ return mdcMap.get();
+ }
+
+ public void putMdc(String key, Object value) {
+ Map<String, Object> map = mdcMap.get();
+ if (map == null) {
+ map = new HashMap<String, Object>();
+ mdcMap.set(map);
+ }
+ map.put(key, value);
+ }
+
+ public void removeMdc(String key) {
+ Map<String, Object> map = mdcMap.get();
+ if (map == null)
+ return;
+ map.remove(key);
+ }
+}
Added: jboss-logging/trunk/src/main/java/org/jboss/logging/JBossLogManagerLogger.java
===================================================================
--- jboss-logging/trunk/src/main/java/org/jboss/logging/JBossLogManagerLogger.java (rev 0)
+++ jboss-logging/trunk/src/main/java/org/jboss/logging/JBossLogManagerLogger.java 2010-02-09 01:07:37 UTC (rev 4001)
@@ -0,0 +1,73 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2010, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.logging;
+
+import org.jboss.logmanager.ExtLogRecord;
+
+final class JBossLogManagerLogger extends Logger {
+
+ private static final long serialVersionUID = 7429618317727584742L;
+
+ private final org.jboss.logmanager.Logger logger;
+
+ JBossLogManagerLogger(final String name, final String resourceBundleName, final String prefix) {
+ super(name, resourceBundleName, prefix);
+ if (resourceBundleName != null) {
+ logger = org.jboss.logmanager.Logger.getLogger(name, resourceBundleName);
+ } else {
+ logger = org.jboss.logmanager.Logger.getLogger(name);
+ }
+ }
+
+ public boolean isEnabled(final Level level) {
+ return logger.isLoggable(translate(level));
+ }
+
+ protected void doLog(final Level level, final String loggerClassName, final Object message, final Object[] parameters, final Throwable thrown) {
+ if (parameters == null) {
+ logger.log(loggerClassName, translate(level), String.valueOf(message), thrown);
+ } else {
+ logger.log(loggerClassName, translate(level), String.valueOf(message), ExtLogRecord.FormatStyle.MESSAGE_FORMAT, parameters, thrown);
+ }
+ }
+
+ protected void doLogf(final Level level, final String loggerClassName, final String format, final Object[] parameters, final Throwable thrown) {
+ if (parameters == null) {
+ logger.log(loggerClassName, translate(level), format, thrown);
+ } else {
+ logger.log(loggerClassName, translate(level), format, ExtLogRecord.FormatStyle.PRINTF, parameters, thrown);
+ }
+ }
+
+ private static java.util.logging.Level translate(final Level level) {
+ if (level != null) switch (level) {
+ case FATAL: return org.jboss.logmanager.Level.FATAL;
+ case ERROR: return org.jboss.logmanager.Level.ERROR;
+ case WARN: return org.jboss.logmanager.Level.WARN;
+ case INFO: return org.jboss.logmanager.Level.INFO;
+ case DEBUG: return org.jboss.logmanager.Level.DEBUG;
+ case TRACE: return org.jboss.logmanager.Level.TRACE;
+ }
+ return org.jboss.logmanager.Level.ALL;
+ }
+}
Added: jboss-logging/trunk/src/main/java/org/jboss/logging/JBossLogManagerProvider.java
===================================================================
--- jboss-logging/trunk/src/main/java/org/jboss/logging/JBossLogManagerProvider.java (rev 0)
+++ jboss-logging/trunk/src/main/java/org/jboss/logging/JBossLogManagerProvider.java 2010-02-09 01:07:37 UTC (rev 4001)
@@ -0,0 +1,80 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2010, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.logging;
+
+import java.util.Map;
+import org.jboss.logmanager.MDC;
+import org.jboss.logmanager.NDC;
+
+final class JBossLogManagerProvider implements LoggerProvider {
+
+ public Logger getLogger(final String name, final String resourceBundleName, final String prefix) {
+ return new JBossLogManagerLogger(name, resourceBundleName, prefix);
+ }
+
+ public void putMdc(final String key, final Object value) {
+ MDC.put(key, String.valueOf(value));
+ }
+
+ public Object getMdc(final String key) {
+ return MDC.get(key);
+ }
+
+ public void removeMdc(final String key) {
+ MDC.remove(key);
+ }
+
+ @SuppressWarnings({ "unchecked" })
+ public Map<String, Object> getMdcMap() {
+ // we can re-define the erasure of this map because MDC does not make further use of the copy
+ return (Map)MDC.copy();
+ }
+
+ public void clearNdc() {
+ NDC.clear();
+ }
+
+ public String getNdc() {
+ return NDC.get();
+ }
+
+ public int getNdcDepth() {
+ return NDC.getDepth();
+ }
+
+ public String popNdc() {
+ return NDC.pop();
+ }
+
+ public String peekNdc() {
+ return NDC.get();
+ }
+
+ public void pushNdc(final String message) {
+ NDC.push(message);
+ }
+
+ public void setNdcMaxDepth(final int maxDepth) {
+ NDC.trimTo(maxDepth);
+ }
+}
Added: jboss-logging/trunk/src/main/java/org/jboss/logging/JBossLogRecord.java
===================================================================
--- jboss-logging/trunk/src/main/java/org/jboss/logging/JBossLogRecord.java (rev 0)
+++ jboss-logging/trunk/src/main/java/org/jboss/logging/JBossLogRecord.java 2010-02-09 01:07:37 UTC (rev 4001)
@@ -0,0 +1,105 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2010, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.logging;
+
+import java.util.logging.Level;
+import java.util.logging.LogRecord;
+
+class JBossLogRecord extends LogRecord {
+
+ private static final long serialVersionUID = 2492784413065296060L;
+ private static final String LOGGER_CLASS_NAME = Logger.class.getName();
+
+ private boolean resolved;
+ private final String loggerClassName;
+
+ JBossLogRecord(final Level level, final String msg) {
+ super(level, msg);
+ loggerClassName = LOGGER_CLASS_NAME;
+ }
+
+ JBossLogRecord(final Level level, final String msg, final String loggerClassName) {
+ super(level, msg);
+ this.loggerClassName = loggerClassName;
+ }
+
+ public String getSourceClassName() {
+ if (! resolved) {
+ resolve();
+ }
+ return super.getSourceClassName();
+ }
+
+ public void setSourceClassName(final String sourceClassName) {
+ resolved = true;
+ super.setSourceClassName(sourceClassName);
+ }
+
+ public String getSourceMethodName() {
+ if (! resolved) {
+ resolve();
+ }
+ return super.getSourceMethodName();
+ }
+
+ public void setSourceMethodName(final String sourceMethodName) {
+ resolved = true;
+ super.setSourceMethodName(sourceMethodName);
+ }
+
+ private void resolve() {
+ resolved = true;
+ final StackTraceElement[] stack = new Throwable().getStackTrace();
+ boolean found = false;
+ for (StackTraceElement element : stack) {
+ final String className = element.getClassName();
+ if (found) {
+ if (! loggerClassName.equals(className)) {
+ setSourceClassName(className);
+ setSourceMethodName(element.getMethodName());
+ return;
+ }
+ } else {
+ found = loggerClassName.equals(className);
+ }
+ }
+ setSourceClassName("<unknown>");
+ setSourceMethodName("<unknown>");
+ }
+
+ protected Object writeReplace() {
+ final LogRecord replacement = new LogRecord(getLevel(), getMessage());
+ replacement.setResourceBundle(getResourceBundle());
+ replacement.setLoggerName(getLoggerName());
+ replacement.setMillis(getMillis());
+ replacement.setParameters(getParameters());
+ replacement.setResourceBundleName(getResourceBundleName());
+ replacement.setSequenceNumber(getSequenceNumber());
+ replacement.setSourceClassName(getSourceClassName());
+ replacement.setSourceMethodName(getSourceMethodName());
+ replacement.setThreadID(getThreadID());
+ replacement.setThrown(getThrown());
+ return replacement;
+ }
+
+}
Added: jboss-logging/trunk/src/main/java/org/jboss/logging/JDKLevel.java
===================================================================
--- jboss-logging/trunk/src/main/java/org/jboss/logging/JDKLevel.java (rev 0)
+++ jboss-logging/trunk/src/main/java/org/jboss/logging/JDKLevel.java 2010-02-09 01:07:37 UTC (rev 4001)
@@ -0,0 +1,48 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2010, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.logging;
+
+import java.util.logging.Level;
+
+/**
+ * Levels used by the JDK logging backend.
+ */
+public final class JDKLevel extends Level {
+ /** The serialVersionUID */
+ private static final long serialVersionUID = 1L;
+ protected JDKLevel(final String name, final int value) {
+ super(name, value);
+ }
+
+ protected JDKLevel(final String name, final int value, final String resourceBundleName) {
+ super(name, value, resourceBundleName);
+ }
+
+ public static final JDKLevel FATAL = new JDKLevel("FATAL", 1100);
+ public static final JDKLevel ERROR = new JDKLevel("ERROR", 1000);
+ public static final JDKLevel WARN = new JDKLevel("WARN", 900);
+ @SuppressWarnings("hiding")
+ public static final JDKLevel INFO = new JDKLevel("INFO", 800);
+ public static final JDKLevel DEBUG = new JDKLevel("DEBUG", 500);
+ public static final JDKLevel TRACE = new JDKLevel("TRACE", 400);
+}
\ No newline at end of file
Added: jboss-logging/trunk/src/main/java/org/jboss/logging/JDKLogger.java
===================================================================
--- jboss-logging/trunk/src/main/java/org/jboss/logging/JDKLogger.java (rev 0)
+++ jboss-logging/trunk/src/main/java/org/jboss/logging/JDKLogger.java 2010-02-09 01:07:37 UTC (rev 4001)
@@ -0,0 +1,62 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2010, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.logging;
+
+final class JDKLogger extends Logger {
+
+ private static final long serialVersionUID = 2563174097983721393L;
+
+ @SuppressWarnings({ "NonConstantLogger" })
+ private transient final java.util.logging.Logger logger;
+
+ public JDKLogger(final String name, final String resourceBundleName, final String prefix) {
+ super(name, resourceBundleName, prefix);
+ if (resourceBundleName == null) {
+ logger = java.util.logging.Logger.getLogger(name);
+ } else {
+ logger = java.util.logging.Logger.getLogger(name, resourceBundleName);
+ }
+ }
+
+ protected void doLog(final Level level, final String loggerClassName, final Object message, final Object[] parameters, final Throwable thrown) {
+ }
+
+ protected void doLogf(final Level level, final String loggerClassName, final String format, final Object[] parameters, final Throwable thrown) {
+ }
+
+ private static java.util.logging.Level translate(final Level level) {
+ if (level != null) switch (level) {
+ case FATAL: return JDKLevel.FATAL;
+ case ERROR: return JDKLevel.ERROR;
+ case WARN: return JDKLevel.WARN;
+ case INFO: return JDKLevel.INFO;
+ case DEBUG: return JDKLevel.DEBUG;
+ case TRACE: return JDKLevel.TRACE;
+ }
+ return JDKLevel.ALL;
+ }
+
+ public boolean isEnabled(final Level level) {
+ return logger.isLoggable(translate(level));
+ }
+}
Added: jboss-logging/trunk/src/main/java/org/jboss/logging/JDKLoggerProvider.java
===================================================================
--- jboss-logging/trunk/src/main/java/org/jboss/logging/JDKLoggerProvider.java (rev 0)
+++ jboss-logging/trunk/src/main/java/org/jboss/logging/JDKLoggerProvider.java 2010-02-09 01:07:37 UTC (rev 4001)
@@ -0,0 +1,30 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2010, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.logging;
+
+final class JDKLoggerProvider extends AbstractMdcLoggerProvider implements LoggerProvider {
+
+ public Logger getLogger(final String name, final String resourceBundleName, final String prefix) {
+ return new JDKLogger(name, resourceBundleName, prefix);
+ }
+}
Added: jboss-logging/trunk/src/main/java/org/jboss/logging/Log4jLogger.java
===================================================================
--- jboss-logging/trunk/src/main/java/org/jboss/logging/Log4jLogger.java (rev 0)
+++ jboss-logging/trunk/src/main/java/org/jboss/logging/Log4jLogger.java 2010-02-09 01:07:37 UTC (rev 4001)
@@ -0,0 +1,62 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2010, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.logging;
+
+import java.text.MessageFormat;
+
+final class Log4jLogger extends Logger {
+
+ private static final long serialVersionUID = -5446154366955151335L;
+
+ private final org.apache.log4j.Logger logger;
+
+ Log4jLogger(final String name, final String resourceBundleName, final String prefix) {
+ super(name, resourceBundleName, prefix);
+ logger = org.apache.log4j.Logger.getLogger(name);
+ }
+
+ public boolean isEnabled(final Level level) {
+ final org.apache.log4j.Level l = translate(level);
+ return logger.isEnabledFor(l) && l.isGreaterOrEqual(logger.getEffectiveLevel());
+ }
+
+ protected void doLog(final Level level, final String loggerClassName, final Object message, final Object[] parameters, final Throwable thrown) {
+ logger.log(loggerClassName, translate(level), parameters == null || parameters.length == 0 ? message : MessageFormat.format(String.valueOf(message), parameters), thrown);
+ }
+
+ protected void doLogf(final Level level, final String loggerClassName, final String format, final Object[] parameters, final Throwable thrown) {
+ logger.log(loggerClassName, translate(level), parameters == null || parameters.length == 0 ? format : String.format(format, parameters), thrown);
+ }
+
+ private static org.apache.log4j.Level translate(final Level level) {
+ if (level != null) switch (level) {
+ case FATAL: return org.apache.log4j.Level.FATAL;
+ case ERROR: return org.apache.log4j.Level.ERROR;
+ case WARN: return org.apache.log4j.Level.WARN;
+ case INFO: return org.apache.log4j.Level.INFO;
+ case DEBUG: return org.apache.log4j.Level.DEBUG;
+ case TRACE: return org.apache.log4j.Level.TRACE;
+ }
+ return org.apache.log4j.Level.ALL;
+ }
+}
Added: jboss-logging/trunk/src/main/java/org/jboss/logging/Log4jLoggerProvider.java
===================================================================
--- jboss-logging/trunk/src/main/java/org/jboss/logging/Log4jLoggerProvider.java (rev 0)
+++ jboss-logging/trunk/src/main/java/org/jboss/logging/Log4jLoggerProvider.java 2010-02-09 01:07:37 UTC (rev 4001)
@@ -0,0 +1,80 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2010, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.logging;
+
+import java.util.Map;
+
+import org.apache.log4j.MDC;
+import org.apache.log4j.NDC;
+
+final class Log4jLoggerProvider implements LoggerProvider {
+
+ public Logger getLogger(final String name, final String resourceBundleName, final String prefix) {
+ return new Log4jLogger(name, resourceBundleName, prefix);
+ }
+
+ public Object getMdc(String key) {
+ return MDC.get(key);
+ }
+
+ @SuppressWarnings("unchecked")
+ public Map<String, Object> getMdcMap() {
+ return MDC.getContext();
+ }
+
+ public void putMdc(String key, Object val) {
+ MDC.put(key, val);
+ }
+
+ public void removeMdc(String key) {
+ MDC.remove(key);
+ }
+
+ public void clearNdc() {
+ NDC.clear();
+ }
+
+ public String getNdc() {
+ return NDC.get();
+ }
+
+ public int getNdcDepth() {
+ return NDC.getDepth();
+ }
+
+ public String peekNdc() {
+ return NDC.peek();
+ }
+
+ public String popNdc() {
+ return NDC.pop();
+ }
+
+ public void pushNdc(String message) {
+ NDC.push(message);
+ }
+
+ public void setNdcMaxDepth(int maxDepth) {
+ NDC.setMaxDepth(maxDepth);
+ }
+}
Added: jboss-logging/trunk/src/main/java/org/jboss/logging/Logger.java
===================================================================
--- jboss-logging/trunk/src/main/java/org/jboss/logging/Logger.java (rev 0)
+++ jboss-logging/trunk/src/main/java/org/jboss/logging/Logger.java 2010-02-09 01:07:37 UTC (rev 4001)
@@ -0,0 +1,1438 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2010, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.logging;
+
+import java.io.Serializable;
+
+/**
+ * An abstracted logging entry point.
+ */
+public abstract class Logger implements Serializable {
+
+ private static final long serialVersionUID = 4232175575988879434L;
+
+ private static final String FQCN = Logger.class.getName();
+
+ /**
+ * Levels used by this logging API.
+ */
+ public enum Level {
+ FATAL,
+ ERROR,
+ WARN,
+ INFO,
+ DEBUG,
+ TRACE,
+ }
+
+ private final String name;
+ private final String resourceBundleName;
+ private final String prefix;
+
+ /**
+ * Construct a new instance.
+ *
+ * @param name the logger category name
+ * @param resourceBundleName the resource bundle name or {@code null} for none
+ * @param prefix the log message prefix string
+ */
+ protected Logger(final String name, final String resourceBundleName, final String prefix) {
+ this.name = name;
+ this.resourceBundleName = resourceBundleName;
+ this.prefix = prefix;
+ }
+
+ /**
+ * Return the name of this logger.
+ *
+ * @return The name of this logger.
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * Check to see if the given level is enabled for this logger.
+ *
+ * @param level the level to check for
+ * @return {@code true} if messages may be logged at the given level, {@code false} otherwise
+ */
+ public abstract boolean isEnabled(Level level);
+
+ /**
+ * Implementation log method (standard parameter formatting).
+ *
+ * @param level the level
+ * @param loggerClassName the logger class name
+ * @param message the message to log
+ * @param parameters the parameters of the message
+ * @param thrown the exception which was thrown, if any
+ */
+ protected abstract void doLog(Level level, String loggerClassName, Object message, Object[] parameters, Throwable thrown);
+
+ /**
+ * Implementation log method (printf formatting).
+ *
+ * @param level the level
+ * @param loggerClassName the logger class name
+ * @param format the format string to log
+ * @param parameters the parameters of the message
+ * @param thrown the exception which was thrown, if any
+ */
+ protected abstract void doLogf(Level level, String loggerClassName, String format, Object[] parameters, Throwable thrown);
+
+ /**
+ * Check to see if the TRACE level is enabled for this logger.
+ *
+ * @return true if a {@link #trace(Object)} method invocation would pass the msg to the configured appenders, false
+ * otherwise.
+ */
+ public boolean isTraceEnabled() {
+ return isEnabled(Level.TRACE);
+ }
+
+ /**
+ * Issue a log msg with a level of TRACE.
+ *
+ * @param message the message
+ */
+ public void trace(Object message) {
+ doLog(Level.TRACE, FQCN, message, null, null);
+ }
+
+ /**
+ * Issue a log msg and throwable with a level of TRACE.
+ *
+ * @param message the message
+ * @param t the throwable
+ */
+ public void trace(Object message, Throwable t) {
+ doLog(Level.TRACE, FQCN, message, null, t);
+ }
+
+ /**
+ * Issue a log msg and throwable with a level of TRACE and a specific logger class name.
+ *
+ * @param loggerFqcn the logger class name
+ * @param message the message
+ * @param t the throwable
+ */
+ public void trace(String loggerFqcn, Object message, Throwable t) {
+ doLog(Level.TRACE, loggerFqcn, message, null, t);
+ }
+
+ /**
+ * Issue a log message with parameters with a level of TRACE.
+ *
+ * @param message the message
+ * @param params the message parameters
+ */
+ public void trace(Object message, Object[] params) {
+ doLog(Level.TRACE, FQCN, message, params, null);
+ }
+
+ /**
+ * Issue a log message with parameters and a throwable with a level of TRACE.
+ *
+ * @param message the message
+ * @param params the message parameters
+ * @param t the throwable
+ */
+ public void trace(Object message, Object[] params, Throwable t) {
+ doLog(Level.TRACE, FQCN, message, params, t);
+ }
+
+ /**
+ * Issue a log message with parameters and a throwable with a level of TRACE.
+ *
+ * @param loggerFqcn the logger class name
+ * @param message the message
+ * @param params the message parameters
+ * @param t the throwable
+ */
+ public void trace(String loggerFqcn, Object message, Object[] params, Throwable t) {
+ doLog(Level.TRACE, loggerFqcn, message, params, t);
+ }
+
+ /**
+ * Issue a formatted log message with a level of TRACE.
+ *
+ * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor
+ * @param params the parameters
+ */
+ public void tracef(String format, Object... params) {
+ doLogf(Level.TRACE, FQCN, format, params, null);
+ }
+
+ /**
+ * Issue a formatted log message with a level of TRACE.
+ *
+ * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor
+ * @param param1 the sole parameter
+ */
+ public void tracef(String format, Object param1) {
+ if (isEnabled(Level.TRACE)) {
+ doLogf(Level.TRACE, FQCN, format, new Object[] { param1 }, null);
+ }
+ }
+
+ /**
+ * Issue a formatted log message with a level of TRACE.
+ *
+ * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor
+ * @param param1 the first parameter
+ * @param param2 the second parameter
+ */
+ public void tracef(String format, Object param1, Object param2) {
+ if (isEnabled(Level.TRACE)) {
+ doLogf(Level.TRACE, FQCN, format, new Object[] { param1, param2 }, null);
+ }
+ }
+
+ /**
+ * Issue a formatted log message with a level of TRACE.
+ *
+ * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor
+ * @param param1 the first parameter
+ * @param param2 the second parameter
+ * @param param3 the third parameter
+ */
+ public void tracef(String format, Object param1, Object param2, Object param3) {
+ if (isEnabled(Level.TRACE)) {
+ doLogf(Level.TRACE, FQCN, format, new Object[] { param1, param2, param3 }, null);
+ }
+ }
+
+ /**
+ * Issue a formatted log message with a level of TRACE.
+ *
+ * @param t the throwable
+ * @param format the format string, as per {@link String#format(String, Object...)}
+ * @param params the parameters
+ */
+ public void tracef(Throwable t, String format, Object... params) {
+ doLogf(Level.TRACE, FQCN, format, params, t);
+ }
+
+ /**
+ * Issue a formatted log message with a level of TRACE.
+ *
+ * @param t the throwable
+ * @param format the format string, as per {@link String#format(String, Object...)}
+ * @param param1 the sole parameter
+ */
+ public void tracef(Throwable t, String format, Object param1) {
+ if (isEnabled(Level.TRACE)) {
+ doLogf(Level.TRACE, FQCN, format, new Object[] { param1 }, t);
+ }
+ }
+
+ /**
+ * Issue a formatted log message with a level of TRACE.
+ *
+ * @param t the throwable
+ * @param format the format string, as per {@link String#format(String, Object...)}
+ * @param param1 the first parameter
+ * @param param2 the second parameter
+ */
+ public void tracef(Throwable t, String format, Object param1, Object param2) {
+ if (isEnabled(Level.TRACE)) {
+ doLogf(Level.TRACE, FQCN, format, new Object[] { param1, param2 }, t);
+ }
+ }
+
+ /**
+ * Issue a formatted log message with a level of TRACE.
+ *
+ * @param t the throwable
+ * @param format the format string, as per {@link String#format(String, Object...)}
+ * @param param1 the first parameter
+ * @param param2 the second parameter
+ * @param param3 the third parameter
+ */
+ public void tracef(Throwable t, String format, Object param1, Object param2, Object param3) {
+ if (isEnabled(Level.TRACE)) {
+ doLogf(Level.TRACE, FQCN, format, new Object[] { param1, param2, param3 }, t);
+ }
+ }
+
+ /**
+ * Check to see if the DEBUG level is enabled for this logger.
+ *
+ * @return true if a {@link #debug(Object)} method invocation would pass the msg to the configured appenders, false
+ * otherwise.
+ */
+ public boolean isDebugEnabled() {
+ return isEnabled(Level.DEBUG);
+ }
+
+ /**
+ * Issue a log message with a level of DEBUG.
+ *
+ * @param message the message
+ */
+ public void debug(Object message) {
+ doLog(Level.DEBUG, FQCN, message, null, null);
+ }
+
+ /**
+ * Issue a log message and throwable with a level of DEBUG.
+ *
+ * @param message the message
+ * @param t the throwable
+ */
+ public void debug(Object message, Throwable t) {
+ doLog(Level.DEBUG, FQCN, message, null, t);
+ }
+
+ /**
+ * Issue a log message and throwable with a level of DEBUG and a specific logger class name.
+ *
+ * @param loggerFqcn the logger class name
+ * @param message the message
+ * @param t the throwable
+ */
+ public void debug(String loggerFqcn, Object message, Throwable t) {
+ doLog(Level.DEBUG, loggerFqcn, message, null, t);
+ }
+
+ /**
+ * Issue a log message with parameters with a level of DEBUG.
+ *
+ * @param message the message
+ * @param params the message parameters
+ */
+ public void debug(Object message, Object[] params) {
+ doLog(Level.DEBUG, FQCN, message, params, null);
+ }
+
+ /**
+ * Issue a log message with parameters and a throwable with a level of DEBUG.
+ *
+ * @param message the message
+ * @param params the message parameters
+ * @param t the throwable
+ */
+ public void debug(Object message, Object[] params, Throwable t) {
+ doLog(Level.DEBUG, FQCN, message, params, t);
+ }
+
+ /**
+ * Issue a log message with parameters and a throwable with a level of DEBUG.
+ *
+ * @param loggerFqcn the logger class name
+ * @param message the message
+ * @param params the message parameters
+ * @param t the throwable
+ */
+ public void debug(String loggerFqcn, Object message, Object[] params, Throwable t) {
+ doLog(Level.DEBUG, loggerFqcn, message, params, t);
+ }
+
+ /**
+ * Issue a formatted log message with a level of DEBUG.
+ *
+ * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor
+ * @param params the parameters
+ */
+ public void debugf(String format, Object... params) {
+ doLogf(Level.DEBUG, FQCN, format, params, null);
+ }
+
+ /**
+ * Issue a formatted log message with a level of DEBUG.
+ *
+ * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor
+ * @param param1 the sole parameter
+ */
+ public void debugf(String format, Object param1) {
+ if (isEnabled(Level.DEBUG)) {
+ doLogf(Level.DEBUG, FQCN, format, new Object[] { param1 }, null);
+ }
+ }
+
+ /**
+ * Issue a formatted log message with a level of DEBUG.
+ *
+ * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor
+ * @param param1 the first parameter
+ * @param param2 the second parameter
+ */
+ public void debugf(String format, Object param1, Object param2) {
+ if (isEnabled(Level.DEBUG)) {
+ doLogf(Level.DEBUG, FQCN, format, new Object[] { param1, param2 }, null);
+ }
+ }
+
+ /**
+ * Issue a formatted log message with a level of DEBUG.
+ *
+ * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor
+ * @param param1 the first parameter
+ * @param param2 the second parameter
+ * @param param3 the third parameter
+ */
+ public void debugf(String format, Object param1, Object param2, Object param3) {
+ if (isEnabled(Level.DEBUG)) {
+ doLogf(Level.DEBUG, FQCN, format, new Object[] { param1, param2, param3 }, null);
+ }
+ }
+
+ /**
+ * Issue a formatted log message with a level of DEBUG.
+ *
+ * @param t the throwable
+ * @param format the format string, as per {@link String#format(String, Object...)}
+ * @param params the parameters
+ */
+ public void debugf(Throwable t, String format, Object... params) {
+ doLogf(Level.DEBUG, FQCN, format, params, t);
+ }
+
+ /**
+ * Issue a formatted log message with a level of DEBUG.
+ *
+ * @param t the throwable
+ * @param format the format string, as per {@link String#format(String, Object...)}
+ * @param param1 the sole parameter
+ */
+ public void debugf(Throwable t, String format, Object param1) {
+ if (isEnabled(Level.DEBUG)) {
+ doLogf(Level.DEBUG, FQCN, format, new Object[] { param1 }, t);
+ }
+ }
+
+ /**
+ * Issue a formatted log message with a level of DEBUG.
+ *
+ * @param t the throwable
+ * @param format the format string, as per {@link String#format(String, Object...)}
+ * @param param1 the first parameter
+ * @param param2 the second parameter
+ */
+ public void debugf(Throwable t, String format, Object param1, Object param2) {
+ if (isEnabled(Level.DEBUG)) {
+ doLogf(Level.DEBUG, FQCN, format, new Object[] { param1, param2 }, t);
+ }
+ }
+
+ /**
+ * Issue a formatted log message with a level of DEBUG.
+ *
+ * @param t the throwable
+ * @param format the format string, as per {@link String#format(String, Object...)}
+ * @param param1 the first parameter
+ * @param param2 the second parameter
+ * @param param3 the third parameter
+ */
+ public void debugf(Throwable t, String format, Object param1, Object param2, Object param3) {
+ if (isEnabled(Level.DEBUG)) {
+ doLogf(Level.DEBUG, FQCN, format, new Object[] { param1, param2, param3 }, t);
+ }
+ }
+
+ /**
+ * Check to see if the INFO level is enabled for this logger.
+ *
+ * @return true if a {@link #info(Object)} method invocation would pass the msg to the configured appenders, false
+ * otherwise.
+ */
+ public boolean isInfoEnabled() {
+ return isEnabled(Level.INFO);
+ }
+
+ /**
+ * Issue a log message with a level of INFO.
+ *
+ * @param message the message
+ */
+ public void info(Object message) {
+ doLog(Level.INFO, FQCN, message, null, null);
+ }
+
+ /**
+ * Issue a log message and throwable with a level of INFO.
+ *
+ * @param message the message
+ * @param t the throwable
+ */
+ public void info(Object message, Throwable t) {
+ doLog(Level.INFO, FQCN, message, null, t);
+ }
+
+ /**
+ * Issue a log message and throwable with a level of INFO and a specific logger class name.
+ *
+ * @param loggerFqcn the logger class name
+ * @param message the message
+ * @param t the throwable
+ */
+ public void info(String loggerFqcn, Object message, Throwable t) {
+ doLog(Level.INFO, loggerFqcn, message, null, t);
+ }
+
+ /**
+ * Issue a log message with parameters with a level of INFO.
+ *
+ * @param message the message
+ * @param params the message parameters
+ */
+ public void info(Object message, Object[] params) {
+ doLog(Level.INFO, FQCN, message, params, null);
+ }
+
+ /**
+ * Issue a log message with parameters and a throwable with a level of INFO.
+ *
+ * @param message the message
+ * @param params the message parameters
+ * @param t the throwable
+ */
+ public void info(Object message, Object[] params, Throwable t) {
+ doLog(Level.INFO, FQCN, message, params, t);
+ }
+
+ /**
+ * Issue a log message with parameters and a throwable with a level of INFO.
+ *
+ * @param loggerFqcn the logger class name
+ * @param message the message
+ * @param params the message parameters
+ * @param t the throwable
+ */
+ public void info(String loggerFqcn, Object message, Object[] params, Throwable t) {
+ doLog(Level.INFO, loggerFqcn, message, params, t);
+ }
+
+ /**
+ * Issue a formatted log message with a level of INFO.
+ *
+ * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor
+ * @param params the parameters
+ */
+ public void infof(String format, Object... params) {
+ doLogf(Level.INFO, FQCN, format, params, null);
+ }
+
+ /**
+ * Issue a formatted log message with a level of INFO.
+ *
+ * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor
+ * @param param1 the sole parameter
+ */
+ public void infof(String format, Object param1) {
+ if (isEnabled(Level.INFO)) {
+ doLogf(Level.INFO, FQCN, format, new Object[] { param1 }, null);
+ }
+ }
+
+ /**
+ * Issue a formatted log message with a level of INFO.
+ *
+ * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor
+ * @param param1 the first parameter
+ * @param param2 the second parameter
+ */
+ public void infof(String format, Object param1, Object param2) {
+ if (isEnabled(Level.INFO)) {
+ doLogf(Level.INFO, FQCN, format, new Object[] { param1, param2 }, null);
+ }
+ }
+
+ /**
+ * Issue a formatted log message with a level of INFO.
+ *
+ * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor
+ * @param param1 the first parameter
+ * @param param2 the second parameter
+ * @param param3 the third parameter
+ */
+ public void infof(String format, Object param1, Object param2, Object param3) {
+ if (isEnabled(Level.INFO)) {
+ doLogf(Level.INFO, FQCN, format, new Object[] { param1, param2, param3 }, null);
+ }
+ }
+
+ /**
+ * Issue a formatted log message with a level of INFO.
+ *
+ * @param t the throwable
+ * @param format the format string, as per {@link String#format(String, Object...)}
+ * @param params the parameters
+ */
+ public void infof(Throwable t, String format, Object... params) {
+ doLogf(Level.INFO, FQCN, format, params, t);
+ }
+
+ /**
+ * Issue a formatted log message with a level of INFO.
+ *
+ * @param t the throwable
+ * @param format the format string, as per {@link String#format(String, Object...)}
+ * @param param1 the sole parameter
+ */
+ public void infof(Throwable t, String format, Object param1) {
+ if (isEnabled(Level.INFO)) {
+ doLogf(Level.INFO, FQCN, format, new Object[] { param1 }, t);
+ }
+ }
+
+ /**
+ * Issue a formatted log message with a level of INFO.
+ *
+ * @param t the throwable
+ * @param format the format string, as per {@link String#format(String, Object...)}
+ * @param param1 the first parameter
+ * @param param2 the second parameter
+ */
+ public void infof(Throwable t, String format, Object param1, Object param2) {
+ if (isEnabled(Level.INFO)) {
+ doLogf(Level.INFO, FQCN, format, new Object[] { param1, param2 }, t);
+ }
+ }
+
+ /**
+ * Issue a formatted log message with a level of INFO.
+ *
+ * @param t the throwable
+ * @param format the format string, as per {@link String#format(String, Object...)}
+ * @param param1 the first parameter
+ * @param param2 the second parameter
+ * @param param3 the third parameter
+ */
+ public void infof(Throwable t, String format, Object param1, Object param2, Object param3) {
+ if (isEnabled(Level.INFO)) {
+ doLogf(Level.INFO, FQCN, format, new Object[] { param1, param2, param3 }, t);
+ }
+ }
+
+ /**
+ * Issue a log message with a level of WARN.
+ *
+ * @param message the message
+ */
+ public void warn(Object message) {
+ doLog(Level.WARN, FQCN, message, null, null);
+ }
+
+ /**
+ * Issue a log message and throwable with a level of WARN.
+ *
+ * @param message the message
+ * @param t the throwable
+ */
+ public void warn(Object message, Throwable t) {
+ doLog(Level.WARN, FQCN, message, null, t);
+ }
+
+ /**
+ * Issue a log message and throwable with a level of WARN and a specific logger class name.
+ *
+ * @param loggerFqcn the logger class name
+ * @param message the message
+ * @param t the throwable
+ */
+ public void warn(String loggerFqcn, Object message, Throwable t) {
+ doLog(Level.WARN, loggerFqcn, message, null, t);
+ }
+
+ /**
+ * Issue a log message with parameters with a level of WARN.
+ *
+ * @param message the message
+ * @param params the message parameters
+ */
+ public void warn(Object message, Object[] params) {
+ doLog(Level.WARN, FQCN, message, params, null);
+ }
+
+ /**
+ * Issue a log message with parameters and a throwable with a level of WARN.
+ *
+ * @param message the message
+ * @param params the message parameters
+ * @param t the throwable
+ */
+ public void warn(Object message, Object[] params, Throwable t) {
+ doLog(Level.WARN, FQCN, message, params, t);
+ }
+
+ /**
+ * Issue a log message with parameters and a throwable with a level of WARN.
+ *
+ * @param loggerFqcn the logger class name
+ * @param message the message
+ * @param params the message parameters
+ * @param t the throwable
+ */
+ public void warn(String loggerFqcn, Object message, Object[] params, Throwable t) {
+ doLog(Level.WARN, loggerFqcn, message, params, t);
+ }
+
+ /**
+ * Issue a formatted log message with a level of WARN.
+ *
+ * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor
+ * @param params the parameters
+ */
+ public void warnf(String format, Object... params) {
+ doLogf(Level.WARN, FQCN, format, params, null);
+ }
+
+ /**
+ * Issue a formatted log message with a level of WARN.
+ *
+ * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor
+ * @param param1 the sole parameter
+ */
+ public void warnf(String format, Object param1) {
+ if (isEnabled(Level.WARN)) {
+ doLogf(Level.WARN, FQCN, format, new Object[] { param1 }, null);
+ }
+ }
+
+ /**
+ * Issue a formatted log message with a level of WARN.
+ *
+ * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor
+ * @param param1 the first parameter
+ * @param param2 the second parameter
+ */
+ public void warnf(String format, Object param1, Object param2) {
+ if (isEnabled(Level.WARN)) {
+ doLogf(Level.WARN, FQCN, format, new Object[] { param1, param2 }, null);
+ }
+ }
+
+ /**
+ * Issue a formatted log message with a level of WARN.
+ *
+ * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor
+ * @param param1 the first parameter
+ * @param param2 the second parameter
+ * @param param3 the third parameter
+ */
+ public void warnf(String format, Object param1, Object param2, Object param3) {
+ if (isEnabled(Level.WARN)) {
+ doLogf(Level.WARN, FQCN, format, new Object[] { param1, param2, param3 }, null);
+ }
+ }
+
+ /**
+ * Issue a formatted log message with a level of WARN.
+ *
+ * @param t the throwable
+ * @param format the format string, as per {@link String#format(String, Object...)}
+ * @param params the parameters
+ */
+ public void warnf(Throwable t, String format, Object... params) {
+ doLogf(Level.WARN, FQCN, format, params, t);
+ }
+
+ /**
+ * Issue a formatted log message with a level of WARN.
+ *
+ * @param t the throwable
+ * @param format the format string, as per {@link String#format(String, Object...)}
+ * @param param1 the sole parameter
+ */
+ public void warnf(Throwable t, String format, Object param1) {
+ if (isEnabled(Level.WARN)) {
+ doLogf(Level.WARN, FQCN, format, new Object[] { param1 }, t);
+ }
+ }
+
+ /**
+ * Issue a formatted log message with a level of WARN.
+ *
+ * @param t the throwable
+ * @param format the format string, as per {@link String#format(String, Object...)}
+ * @param param1 the first parameter
+ * @param param2 the second parameter
+ */
+ public void warnf(Throwable t, String format, Object param1, Object param2) {
+ if (isEnabled(Level.WARN)) {
+ doLogf(Level.WARN, FQCN, format, new Object[] { param1, param2 }, t);
+ }
+ }
+
+ /**
+ * Issue a formatted log message with a level of WARN.
+ *
+ * @param t the throwable
+ * @param format the format string, as per {@link String#format(String, Object...)}
+ * @param param1 the first parameter
+ * @param param2 the second parameter
+ * @param param3 the third parameter
+ */
+ public void warnf(Throwable t, String format, Object param1, Object param2, Object param3) {
+ if (isEnabled(Level.WARN)) {
+ doLogf(Level.WARN, FQCN, format, new Object[] { param1, param2, param3 }, t);
+ }
+ }
+
+ /**
+ * Issue a log message with a level of ERROR.
+ *
+ * @param message the message
+ */
+ public void error(Object message) {
+ doLog(Level.ERROR, FQCN, message, null, null);
+ }
+
+ /**
+ * Issue a log message and throwable with a level of ERROR.
+ *
+ * @param message the message
+ * @param t the throwable
+ */
+ public void error(Object message, Throwable t) {
+ doLog(Level.ERROR, FQCN, message, null, t);
+ }
+
+ /**
+ * Issue a log message and throwable with a level of ERROR and a specific logger class name.
+ *
+ * @param loggerFqcn the logger class name
+ * @param message the message
+ * @param t the throwable
+ */
+ public void error(String loggerFqcn, Object message, Throwable t) {
+ doLog(Level.ERROR, loggerFqcn, message, null, t);
+ }
+
+ /**
+ * Issue a log message with parameters with a level of ERROR.
+ *
+ * @param message the message
+ * @param params the message parameters
+ */
+ public void error(Object message, Object[] params) {
+ doLog(Level.ERROR, FQCN, message, params, null);
+ }
+
+ /**
+ * Issue a log message with parameters and a throwable with a level of ERROR.
+ *
+ * @param message the message
+ * @param params the message parameters
+ * @param t the throwable
+ */
+ public void error(Object message, Object[] params, Throwable t) {
+ doLog(Level.ERROR, FQCN, message, params, t);
+ }
+
+ /**
+ * Issue a log message with parameters and a throwable with a level of ERROR.
+ *
+ * @param loggerFqcn the logger class name
+ * @param message the message
+ * @param params the message parameters
+ * @param t the throwable
+ */
+ public void error(String loggerFqcn, Object message, Object[] params, Throwable t) {
+ doLog(Level.ERROR, loggerFqcn, message, params, t);
+ }
+
+ /**
+ * Issue a formatted log message with a level of ERROR.
+ *
+ * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor
+ * @param params the parameters
+ */
+ public void errorf(String format, Object... params) {
+ doLogf(Level.ERROR, FQCN, format, params, null);
+ }
+
+ /**
+ * Issue a formatted log message with a level of ERROR.
+ *
+ * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor
+ * @param param1 the sole parameter
+ */
+ public void errorf(String format, Object param1) {
+ if (isEnabled(Level.ERROR)) {
+ doLogf(Level.ERROR, FQCN, format, new Object[] { param1 }, null);
+ }
+ }
+
+ /**
+ * Issue a formatted log message with a level of ERROR.
+ *
+ * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor
+ * @param param1 the first parameter
+ * @param param2 the second parameter
+ */
+ public void errorf(String format, Object param1, Object param2) {
+ if (isEnabled(Level.ERROR)) {
+ doLogf(Level.ERROR, FQCN, format, new Object[] { param1, param2 }, null);
+ }
+ }
+
+ /**
+ * Issue a formatted log message with a level of ERROR.
+ *
+ * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor
+ * @param param1 the first parameter
+ * @param param2 the second parameter
+ * @param param3 the third parameter
+ */
+ public void errorf(String format, Object param1, Object param2, Object param3) {
+ if (isEnabled(Level.ERROR)) {
+ doLogf(Level.ERROR, FQCN, format, new Object[] { param1, param2, param3 }, null);
+ }
+ }
+
+ /**
+ * Issue a formatted log message with a level of ERROR.
+ *
+ * @param t the throwable
+ * @param format the format string, as per {@link String#format(String, Object...)}
+ * @param params the parameters
+ */
+ public void errorf(Throwable t, String format, Object... params) {
+ doLogf(Level.ERROR, FQCN, format, params, t);
+ }
+
+ /**
+ * Issue a formatted log message with a level of ERROR.
+ *
+ * @param t the throwable
+ * @param format the format string, as per {@link String#format(String, Object...)}
+ * @param param1 the sole parameter
+ */
+ public void errorf(Throwable t, String format, Object param1) {
+ if (isEnabled(Level.ERROR)) {
+ doLogf(Level.ERROR, FQCN, format, new Object[] { param1 }, t);
+ }
+ }
+
+ /**
+ * Issue a formatted log message with a level of ERROR.
+ *
+ * @param t the throwable
+ * @param format the format string, as per {@link String#format(String, Object...)}
+ * @param param1 the first parameter
+ * @param param2 the second parameter
+ */
+ public void errorf(Throwable t, String format, Object param1, Object param2) {
+ if (isEnabled(Level.ERROR)) {
+ doLogf(Level.ERROR, FQCN, format, new Object[] { param1, param2 }, t);
+ }
+ }
+
+ /**
+ * Issue a formatted log message with a level of ERROR.
+ *
+ * @param t the throwable
+ * @param format the format string, as per {@link String#format(String, Object...)}
+ * @param param1 the first parameter
+ * @param param2 the second parameter
+ * @param param3 the third parameter
+ */
+ public void errorf(Throwable t, String format, Object param1, Object param2, Object param3) {
+ if (isEnabled(Level.ERROR)) {
+ doLogf(Level.ERROR, FQCN, format, new Object[] { param1, param2, param3 }, t);
+ }
+ }
+
+ /**
+ * Issue a log message with a level of FATAL.
+ *
+ * @param message the message
+ */
+ public void fatal(Object message) {
+ doLog(Level.FATAL, FQCN, message, null, null);
+ }
+
+ /**
+ * Issue a log message and throwable with a level of FATAL.
+ *
+ * @param message the message
+ * @param t the throwable
+ */
+ public void fatal(Object message, Throwable t) {
+ doLog(Level.FATAL, FQCN, message, null, t);
+ }
+
+ /**
+ * Issue a log message and throwable with a level of FATAL and a specific logger class name.
+ *
+ * @param loggerFqcn the logger class name
+ * @param message the message
+ * @param t the throwable
+ */
+ public void fatal(String loggerFqcn, Object message, Throwable t) {
+ doLog(Level.FATAL, loggerFqcn, message, null, t);
+ }
+
+ /**
+ * Issue a log message with parameters with a level of FATAL.
+ *
+ * @param message the message
+ * @param params the message parameters
+ */
+ public void fatal(Object message, Object[] params) {
+ doLog(Level.FATAL, FQCN, message, params, null);
+ }
+
+ /**
+ * Issue a log message with parameters and a throwable with a level of FATAL.
+ *
+ * @param message the message
+ * @param params the message parameters
+ * @param t the throwable
+ */
+ public void fatal(Object message, Object[] params, Throwable t) {
+ doLog(Level.FATAL, FQCN, message, params, t);
+ }
+
+ /**
+ * Issue a log message with parameters and a throwable with a level of FATAL.
+ *
+ * @param loggerFqcn the logger class name
+ * @param message the message
+ * @param params the message parameters
+ * @param t the throwable
+ */
+ public void fatal(String loggerFqcn, Object message, Object[] params, Throwable t) {
+ doLog(Level.FATAL, loggerFqcn, message, params, t);
+ }
+
+ /**
+ * Issue a formatted log message with a level of FATAL.
+ *
+ * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor
+ * @param params the parameters
+ */
+ public void fatalf(String format, Object... params) {
+ doLogf(Level.FATAL, FQCN, format, params, null);
+ }
+
+ /**
+ * Issue a formatted log message with a level of FATAL.
+ *
+ * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor
+ * @param param1 the sole parameter
+ */
+ public void fatalf(String format, Object param1) {
+ if (isEnabled(Level.FATAL)) {
+ doLogf(Level.FATAL, FQCN, format, new Object[] { param1 }, null);
+ }
+ }
+
+ /**
+ * Issue a formatted log message with a level of FATAL.
+ *
+ * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor
+ * @param param1 the first parameter
+ * @param param2 the second parameter
+ */
+ public void fatalf(String format, Object param1, Object param2) {
+ if (isEnabled(Level.FATAL)) {
+ doLogf(Level.FATAL, FQCN, format, new Object[] { param1, param2 }, null);
+ }
+ }
+
+ /**
+ * Issue a formatted log message with a level of FATAL.
+ *
+ * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor
+ * @param param1 the first parameter
+ * @param param2 the second parameter
+ * @param param3 the third parameter
+ */
+ public void fatalf(String format, Object param1, Object param2, Object param3) {
+ if (isEnabled(Level.FATAL)) {
+ doLogf(Level.FATAL, FQCN, format, new Object[] { param1, param2, param3 }, null);
+ }
+ }
+
+ /**
+ * Issue a formatted log message with a level of FATAL.
+ *
+ * @param t the throwable
+ * @param format the format string, as per {@link String#format(String, Object...)}
+ * @param params the parameters
+ */
+ public void fatalf(Throwable t, String format, Object... params) {
+ doLogf(Level.FATAL, FQCN, format, params, t);
+ }
+
+ /**
+ * Issue a formatted log message with a level of FATAL.
+ *
+ * @param t the throwable
+ * @param format the format string, as per {@link String#format(String, Object...)}
+ * @param param1 the sole parameter
+ */
+ public void fatalf(Throwable t, String format, Object param1) {
+ if (isEnabled(Level.FATAL)) {
+ doLogf(Level.FATAL, FQCN, format, new Object[] { param1 }, t);
+ }
+ }
+
+ /**
+ * Issue a formatted log message with a level of FATAL.
+ *
+ * @param t the throwable
+ * @param format the format string, as per {@link String#format(String, Object...)}
+ * @param param1 the first parameter
+ * @param param2 the second parameter
+ */
+ public void fatalf(Throwable t, String format, Object param1, Object param2) {
+ if (isEnabled(Level.FATAL)) {
+ doLogf(Level.FATAL, FQCN, format, new Object[] { param1, param2 }, t);
+ }
+ }
+
+ /**
+ * Issue a formatted log message with a level of FATAL.
+ *
+ * @param t the throwable
+ * @param format the format string, as per {@link String#format(String, Object...)}
+ * @param param1 the first parameter
+ * @param param2 the second parameter
+ * @param param3 the third parameter
+ */
+ public void fatalf(Throwable t, String format, Object param1, Object param2, Object param3) {
+ if (isEnabled(Level.FATAL)) {
+ doLogf(Level.FATAL, FQCN, format, new Object[] { param1, param2, param3 }, t);
+ }
+ }
+
+ /**
+ * Log a message at the given level.
+ *
+ * @param level the level
+ * @param message the message
+ */
+ public void log(Level level, Object message) {
+ doLog(level, FQCN, message, null, null);
+ }
+
+ /**
+ * Log a message at the given level.
+ *
+ * @param level the level
+ * @param message the message
+ * @param params the message parameters
+ */
+ public void log(Level level, Object message, Object[] params) {
+ doLog(level, FQCN, message, params, null);
+ }
+
+ /**
+ * Log a message at the given level.
+ *
+ * @param level the level
+ * @param message the message
+ * @param params the message parameters
+ * @param t the throwable cause
+ */
+ public void log(Level level, Object message, Object[] params, Throwable t) {
+ doLog(level, FQCN, message, params, t);
+ }
+
+ /**
+ * Log a message at the given level.
+ *
+ * @param loggerFqcn the logger class name
+ * @param level the level
+ * @param message the message
+ * @param params the message parameters
+ * @param t the throwable cause
+ */
+ public void log(String loggerFqcn, Level level, Object message, Object[] params, Throwable t) {
+ doLog(level, loggerFqcn, message, params, t);
+ }
+
+ /**
+ * Log a message at the given level.
+ *
+ * @param level the level
+ * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor
+ * @param param1 the sole parameter
+ */
+ public void logf(Level level, String format, Object param1) {
+ if (isEnabled(level)) {
+ doLogf(level, FQCN, format, new Object[] { param1 }, null);
+ }
+ }
+
+ /**
+ * Log a message at the given level.
+ *
+ * @param level the level
+ * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor
+ * @param param1 the first parameter
+ * @param param2 the second parameter
+ */
+ public void logf(Level level, String format, Object param1, Object param2) {
+ if (isEnabled(level)) {
+ doLogf(level, FQCN, format, new Object[] { param1, param2 }, null);
+ }
+ }
+
+ /**
+ * Log a message at the given level.
+ *
+ * @param level the level
+ * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor
+ * @param param1 the first parameter
+ * @param param2 the second parameter
+ * @param param3 the third parameter
+ */
+ public void logf(Level level, String format, Object param1, Object param2, Object param3) {
+ if (isEnabled(level)) {
+ doLogf(level, FQCN, format, new Object[] { param1, param2, param3 }, null);
+ }
+ }
+
+ /**
+ * Log a message at the given level.
+ *
+ * @param level the level
+ * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor
+ * @param params the message parameters
+ */
+ public void logf(Level level, String format, Object... params) {
+ doLogf(level, FQCN, format, params, null);
+ }
+
+ /**
+ * Log a message at the given level.
+ *
+ * @param level the level
+ * @param t the throwable cause
+ * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor
+ * @param param1 the sole parameter
+ */
+ public void logf(Level level, Throwable t, String format, Object param1) {
+ if (isEnabled(level)) {
+ doLogf(level, FQCN, format, new Object[] { param1 }, t);
+ }
+ }
+
+ /**
+ * Log a message at the given level.
+ *
+ * @param level the level
+ * @param t the throwable cause
+ * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor
+ * @param param1 the first parameter
+ * @param param2 the second parameter
+ */
+ public void logf(Level level, Throwable t, String format, Object param1, Object param2) {
+ if (isEnabled(level)) {
+ doLogf(level, FQCN, format, new Object[] { param1, param2 }, t);
+ }
+ }
+
+ /**
+ * Log a message at the given level.
+ *
+ * @param level the level
+ * @param t the throwable cause
+ * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor
+ * @param param1 the first parameter
+ * @param param2 the second parameter
+ * @param param3 the third parameter
+ */
+ public void logf(Level level, Throwable t, String format, Object param1, Object param2, Object param3) {
+ if (isEnabled(level)) {
+ doLogf(level, FQCN, format, new Object[] { param1, param2, param3 }, t);
+ }
+ }
+
+ /**
+ * Log a message at the given level.
+ *
+ * @param level the level
+ * @param t the throwable cause
+ * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor
+ * @param params the message parameters
+ */
+ public void logf(Level level, Throwable t, String format, Object... params) {
+ doLogf(level, FQCN, format, params, t);
+ }
+
+ /**
+ * Log a message at the given level.
+ *
+ * @param loggerFqcn the logger class name
+ * @param level the level
+ * @param t the throwable cause
+ * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor
+ * @param param1 the sole parameter
+ */
+ public void logf(String loggerFqcn, Level level, Throwable t, String format, Object param1) {
+ if (isEnabled(level)) {
+ doLogf(level, loggerFqcn, format, new Object[] { param1 }, t);
+ }
+ }
+
+ /**
+ * Log a message at the given level.
+ *
+ * @param loggerFqcn the logger class name
+ * @param level the level
+ * @param t the throwable cause
+ * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor
+ * @param param1 the first parameter
+ * @param param2 the second parameter
+ */
+ public void logf(String loggerFqcn, Level level, Throwable t, String format, Object param1, Object param2) {
+ if (isEnabled(level)) {
+ doLogf(level, loggerFqcn, format, new Object[] { param1, param2 }, t);
+ }
+ }
+
+ /**
+ * Log a message at the given level.
+ *
+ * @param loggerFqcn the logger class name
+ * @param level the level
+ * @param t the throwable cause
+ * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor
+ * @param param1 the first parameter
+ * @param param2 the second parameter
+ * @param param3 the third parameter
+ */
+ public void logf(String loggerFqcn, Level level, Throwable t, String format, Object param1, Object param2, Object param3) {
+ if (isEnabled(level)) {
+ doLogf(level, loggerFqcn, format, new Object[] { param1, param2, param3 }, t);
+ }
+ }
+
+ /**
+ * Log a message at the given level.
+ *
+ * @param loggerFqcn the logger class name
+ * @param level the level
+ * @param t the throwable cause
+ * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor
+ * @param params the message parameters
+ */
+ public void logf(String loggerFqcn, Level level, Throwable t, String format, Object... params) {
+ doLogf(level, loggerFqcn, format, params, t);
+ }
+
+ /**
+ * Read resolver; replaces deserialized instance with a canonical instance.
+ *
+ * @return the canonical logger instance
+ */
+ protected final Object writeReplace() {
+ return new SerializedLogger(name, resourceBundleName, prefix);
+ }
+
+ /**
+ * Get a logger instance with the given name using the given resource bundle (if supported by the underlying
+ * framework).
+ *
+ * @param name the logger category name
+ * @param resourceBundleName the resource bundle name
+ *
+ * @return the logger
+ */
+ public static Logger getI18nLogger(String name, String resourceBundleName) {
+ return LoggerProviders.PROVIDER.getLogger(name, resourceBundleName, null);
+ }
+
+ /**
+ * Get a logger instance with the given name using the given resource bundle (if supported by the underlying
+ * framework).
+ *
+ * @param name the logger category name
+ * @param resourceBundleName the resource bundle name
+ * @param prefix the log message ID subsystem prefix to use
+ *
+ * @return the logger
+ */
+ public static Logger getI18nLogger(String name, String resourceBundleName, String prefix) {
+ return LoggerProviders.PROVIDER.getLogger(name, resourceBundleName, prefix);
+ }
+
+ /**
+ * Get a logger instance with the given name using the given resource bundle (if supported by the underlying
+ * framework).
+ *
+ * @param clazz the class whose name will be used as the logger category name
+ * @param resourceBundleName the resource bundle name
+ *
+ * @return the logger
+ */
+ public static Logger getI18nLogger(Class<?> clazz, String resourceBundleName) {
+ return getI18nLogger(clazz.getName(), resourceBundleName);
+ }
+
+ /**
+ * Get a Logger instance given the logger name.
+ *
+ * @param name the logger name
+ *
+ * @return the logger
+ */
+ public static Logger getLogger(String name) {
+ return getI18nLogger(name, null);
+ }
+
+ /**
+ * Get a Logger instance given the logger name with the given suffix.
+ * <p/>
+ * <p>This will include a logger separator between logger name and suffix.
+ *
+ * @param name the logger name
+ * @param suffix a suffix to append to the logger name
+ *
+ * @return the logger
+ */
+ public static Logger getLogger(String name, String suffix) {
+ return getLogger(name == null || name.length() == 0 ? suffix : name + "." + suffix);
+ }
+
+ /**
+ * Get a Logger instance given the name of a class. This simply calls create(clazz.getName()).
+ *
+ * @param clazz the Class whose name will be used as the logger name
+ *
+ * @return the logger
+ */
+ public static Logger getLogger(Class<?> clazz) {
+ return getLogger(clazz.getName());
+ }
+
+ /**
+ * Get a Logger instance given the name of a class with the given suffix.
+ * <p/>
+ * <p>This will include a logger separator between logger name and suffix
+ *
+ * @param clazz the Class whose name will be used as the logger name
+ * @param suffix a suffix to append to the logger name
+ *
+ * @return the logger
+ */
+ public static Logger getLogger(Class<?> clazz, String suffix) {
+ return getLogger(clazz.getName(), suffix);
+ }
+}
\ No newline at end of file
Added: jboss-logging/trunk/src/main/java/org/jboss/logging/LoggerProvider.java
===================================================================
--- jboss-logging/trunk/src/main/java/org/jboss/logging/LoggerProvider.java (rev 0)
+++ jboss-logging/trunk/src/main/java/org/jboss/logging/LoggerProvider.java 2010-02-09 01:07:37 UTC (rev 4001)
@@ -0,0 +1,51 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2010, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.logging;
+
+import java.util.Map;
+
+public interface LoggerProvider {
+ Logger getLogger(String name, String resourceBundleName, String prefix);
+
+ void putMdc(String key, Object value);
+
+ Object getMdc(String key);
+
+ void removeMdc(String key);
+
+ Map<String, Object> getMdcMap();
+
+ void clearNdc();
+
+ String getNdc();
+
+ int getNdcDepth();
+
+ String popNdc();
+
+ String peekNdc();
+
+ void pushNdc(String message);
+
+ void setNdcMaxDepth(int maxDepth);
+}
Added: jboss-logging/trunk/src/main/java/org/jboss/logging/LoggerProviders.java
===================================================================
--- jboss-logging/trunk/src/main/java/org/jboss/logging/LoggerProviders.java (rev 0)
+++ jboss-logging/trunk/src/main/java/org/jboss/logging/LoggerProviders.java 2010-02-09 01:07:37 UTC (rev 4001)
@@ -0,0 +1,61 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2010, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.logging;
+
+import java.util.logging.LogManager;
+
+final class LoggerProviders {
+ static final LoggerProvider PROVIDER = findProvider();
+
+ private static LoggerProvider findProvider() {
+ final LogManager jdkLogManager = LogManager.getLogManager();
+ if (jdkLogManager.getClass().getName().equals("org.jboss.logmanager.LogManager")) {
+ return new JBossLogManagerProvider();
+ }
+ final ClassLoader cl = getClassLoader();
+ try {
+ Class.forName("org.apache.log4j.LogManager", true, cl);
+ return new Log4jLoggerProvider();
+ } catch (Throwable t) {
+ // nope...
+ }
+ try {
+ // only use slf4j if Logback is in use
+ Class.forName("ch.qos.logback.classic.Logger", false, cl);
+ return new Slf4jLoggerProvider();
+ } catch (Throwable t) {
+ // nope...
+ }
+ return new JDKLoggerProvider();
+ }
+
+ private static ClassLoader getClassLoader() {
+ // Since the impl classes refer to the back-end frameworks directly, if this classloader can't find the target
+ // log classes, then it doesn't really matter if they're possibly available from the TCCL because we won't be
+ // able to find it anyway
+ return LoggerProviders.class.getClassLoader();
+ }
+
+ private LoggerProviders() {
+ }
+}
Added: jboss-logging/trunk/src/main/java/org/jboss/logging/SerializedLogger.java
===================================================================
--- jboss-logging/trunk/src/main/java/org/jboss/logging/SerializedLogger.java (rev 0)
+++ jboss-logging/trunk/src/main/java/org/jboss/logging/SerializedLogger.java 2010-02-09 01:07:37 UTC (rev 4001)
@@ -0,0 +1,48 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2010, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.logging;
+
+import java.io.Serializable;
+
+final class SerializedLogger implements Serializable {
+
+ private static final long serialVersionUID = 508779982439435831L;
+
+ private final String name;
+ private final String resourceBundleName;
+ private final String prefix;
+
+ SerializedLogger(final String name, final String resourceBundleName, final String prefix) {
+ this.name = name;
+ this.resourceBundleName = resourceBundleName;
+ this.prefix = prefix;
+ }
+
+ protected Object readResolve() {
+ if (resourceBundleName != null) {
+ return Logger.getI18nLogger(name, resourceBundleName);
+ } else {
+ return Logger.getLogger(name);
+ }
+ }
+}
Added: jboss-logging/trunk/src/main/java/org/jboss/logging/Slf4jLocationAwareLogger.java
===================================================================
--- jboss-logging/trunk/src/main/java/org/jboss/logging/Slf4jLocationAwareLogger.java (rev 0)
+++ jboss-logging/trunk/src/main/java/org/jboss/logging/Slf4jLocationAwareLogger.java 2010-02-09 01:07:37 UTC (rev 4001)
@@ -0,0 +1,76 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2010, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.logging;
+
+import java.text.MessageFormat;
+import org.slf4j.spi.LocationAwareLogger;
+
+final class Slf4jLocationAwareLogger extends Logger {
+
+ private static final long serialVersionUID = 8685757928087758380L;
+
+ private final LocationAwareLogger logger;
+
+ Slf4jLocationAwareLogger(final String name, final String resourceBundleName, final String prefix, final LocationAwareLogger logger) {
+ super(name, resourceBundleName, prefix);
+ this.logger = logger;
+ }
+
+ public boolean isEnabled(final Level level) {
+ if (level != null) switch (level) {
+ case FATAL: return logger.isErrorEnabled();
+ case ERROR: return logger.isErrorEnabled();
+ case WARN: return logger.isWarnEnabled();
+ case INFO: return logger.isInfoEnabled();
+ case DEBUG: return logger.isDebugEnabled();
+ case TRACE: return logger.isTraceEnabled();
+ }
+ return true;
+ }
+
+ protected void doLog(final Level level, final String loggerClassName, final Object message, final Object[] parameters, final Throwable thrown) {
+ if (isEnabled(level)) {
+ final String text = parameters == null || parameters.length == 0 ? String.valueOf(message) : MessageFormat.format(String.valueOf(message), parameters);
+ logger.log(null, loggerClassName, translate(level), text, thrown);
+ }
+ }
+
+ protected void doLogf(final Level level, final String loggerClassName, final String format, final Object[] parameters, final Throwable thrown) {
+ if (isEnabled(level)) {
+ final String text = parameters == null || parameters.length == 0 ? format : String.format(format, parameters);
+ logger.log(null, loggerClassName, translate(level), text, thrown);
+ }
+ }
+
+ private static int translate(Level level) {
+ if (level != null) switch (level) {
+ case FATAL:
+ case ERROR: return LocationAwareLogger.ERROR_INT;
+ case WARN: return LocationAwareLogger.WARN_INT;
+ case INFO: return LocationAwareLogger.INFO_INT;
+ case DEBUG: return LocationAwareLogger.DEBUG_INT;
+ case TRACE: return LocationAwareLogger.TRACE_INT;
+ }
+ return LocationAwareLogger.TRACE_INT;
+ }
+}
\ No newline at end of file
Added: jboss-logging/trunk/src/main/java/org/jboss/logging/Slf4jLogger.java
===================================================================
--- jboss-logging/trunk/src/main/java/org/jboss/logging/Slf4jLogger.java (rev 0)
+++ jboss-logging/trunk/src/main/java/org/jboss/logging/Slf4jLogger.java 2010-02-09 01:07:37 UTC (rev 4001)
@@ -0,0 +1,97 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2010, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.logging;
+
+import java.text.MessageFormat;
+
+final class Slf4jLogger extends Logger {
+
+ private static final long serialVersionUID = 8685757928087758380L;
+
+ private final org.slf4j.Logger logger;
+
+ Slf4jLogger(final String name, final String resourceBundleName, final String prefix, final org.slf4j.Logger logger) {
+ super(name, resourceBundleName, prefix);
+ this.logger = logger;
+ }
+
+ public boolean isEnabled(final Level level) {
+ if (level != null) switch (level) {
+ case FATAL: return logger.isErrorEnabled();
+ case ERROR: return logger.isErrorEnabled();
+ case WARN: return logger.isWarnEnabled();
+ case INFO: return logger.isInfoEnabled();
+ case DEBUG: return logger.isDebugEnabled();
+ case TRACE: return logger.isTraceEnabled();
+ }
+ return true;
+ }
+
+ protected void doLog(final Level level, final String loggerClassName, final Object message, final Object[] parameters, final Throwable thrown) {
+ if (isEnabled(level)) {
+ final String text = parameters == null || parameters.length == 0 ? String.valueOf(message) : MessageFormat.format(String.valueOf(message), parameters);
+ switch (level) {
+ case FATAL:
+ case ERROR:
+ logger.error(text, thrown);
+ return;
+ case WARN:
+ logger.warn(text, thrown);
+ return;
+ case INFO:
+ logger.info(text, thrown);
+ return;
+ case DEBUG:
+ logger.debug(text, thrown);
+ return;
+ case TRACE:
+ logger.trace(text, thrown);
+ return;
+ }
+ }
+ }
+
+ protected void doLogf(final Level level, final String loggerClassName, final String format, final Object[] parameters, final Throwable thrown) {
+ if (isEnabled(level)) {
+ final String text = parameters == null || parameters.length == 0 ? format : String.format(format, parameters);
+ switch (level) {
+ case FATAL:
+ case ERROR:
+ logger.error(text, thrown);
+ return;
+ case WARN:
+ logger.warn(text, thrown);
+ return;
+ case INFO:
+ logger.info(text, thrown);
+ return;
+ case DEBUG:
+ logger.debug(text, thrown);
+ return;
+ case TRACE:
+ logger.trace(text, thrown);
+ return;
+ }
+ }
+ }
+}
Added: jboss-logging/trunk/src/main/java/org/jboss/logging/Slf4jLoggerProvider.java
===================================================================
--- jboss-logging/trunk/src/main/java/org/jboss/logging/Slf4jLoggerProvider.java (rev 0)
+++ jboss-logging/trunk/src/main/java/org/jboss/logging/Slf4jLoggerProvider.java 2010-02-09 01:07:37 UTC (rev 4001)
@@ -0,0 +1,57 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2010, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.logging;
+
+import java.util.Map;
+import org.slf4j.LoggerFactory;
+import org.slf4j.MDC;
+import org.slf4j.spi.LocationAwareLogger;
+
+final class Slf4jLoggerProvider extends AbstractLoggerProvider implements LoggerProvider {
+
+ public Logger getLogger(final String name, final String resourceBundleName, final String prefix) {
+ org.slf4j.Logger l = LoggerFactory.getLogger(name);
+ if (l instanceof LocationAwareLogger) {
+ return new Slf4jLocationAwareLogger(name, resourceBundleName, prefix, (LocationAwareLogger) l);
+ } else {
+ return new Slf4jLogger(name, resourceBundleName, prefix, l);
+ }
+ }
+
+ public void putMdc(final String key, final Object value) {
+ MDC.put(key, String.valueOf(value));
+ }
+
+ public Object getMdc(final String key) {
+ return MDC.get(key);
+ }
+
+ public void removeMdc(final String key) {
+ MDC.remove(key);
+ }
+
+ @SuppressWarnings({ "unchecked" })
+ public Map<String, Object> getMdcMap() {
+ return MDC.getCopyOfContextMap();
+ }
+}
More information about the jboss-svn-commits
mailing list