You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2014/08/22 20:11:16 UTC
svn commit: r1619878 - in /tomee/tomee/trunk: ./ container/openejb-core/
container/openejb-core/src/main/java/org/apache/openejb/cdi/logging/
container/openejb-core/src/main/java/org/apache/openejb/dyni/
container/openejb-core/src/main/java/org/apache/...
Author: rmannibucau
Date: Fri Aug 22 18:11:16 2014
New Revision: 1619878
URL: http://svn.apache.org/r1619878
Log:
TOMEE-1327 log4j2 integration
Added:
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/logging/Log4j2LoggerFactory.java
- copied, changed from r1618689, tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/logging/Log4jLoggerFactory.java
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/log/logger/Log4j2Logger.java
- copied, changed from r1618689, tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/log/logger/Log4jLogger.java
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/util/Log4j2LogStreamFactory.java
tomee/tomee/trunk/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/log/Log4j2Log.java
- copied, changed from r1618689, tomee/tomee/trunk/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/log/Log4jLog.java
Modified:
tomee/tomee/trunk/container/openejb-core/pom.xml
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/dyni/DynamicSubclass.java
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/testing/ApplicationComposers.java
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/util/Logger.java
tomee/tomee/trunk/pom.xml
tomee/tomee/trunk/tomee/tomee-juli/src/main/java/org/apache/tomee/jul/formatter/log/ReloadableLog.java
tomee/tomee/trunk/tomee/tomee-juli/src/main/java/org/apache/tomee/jul/formatter/log/TomEELog.java
tomee/tomee/trunk/tomee/tomee-loader/pom.xml
Modified: tomee/tomee/trunk/container/openejb-core/pom.xml
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/pom.xml?rev=1619878&r1=1619877&r2=1619878&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/pom.xml (original)
+++ tomee/tomee/trunk/container/openejb-core/pom.xml Fri Aug 22 18:11:16 2014
@@ -430,6 +430,12 @@
<scope>provided</scope>
</dependency>
<dependency>
+ <groupId>org.apache.logging.log4j</groupId>
+ <artifactId>log4j-api</artifactId>
+ <version>${log4j2.version}</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
<artifactId>commons-lang3</artifactId>
<groupId>org.apache.commons</groupId>
</dependency>
Copied: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/logging/Log4j2LoggerFactory.java (from r1618689, tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/logging/Log4jLoggerFactory.java)
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/logging/Log4j2LoggerFactory.java?p2=tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/logging/Log4j2LoggerFactory.java&p1=tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/logging/Log4jLoggerFactory.java&r1=1618689&r2=1619878&rev=1619878&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/logging/Log4jLoggerFactory.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/logging/Log4j2LoggerFactory.java Fri Aug 22 18:11:16 2014
@@ -17,21 +17,21 @@
package org.apache.openejb.cdi.logging;
-import org.apache.openejb.log.logger.Log4jLogger;
+import org.apache.openejb.log.logger.Log4j2Logger;
import org.apache.webbeans.logger.WebBeansLoggerFactory;
import java.util.Locale;
import java.util.ResourceBundle;
import java.util.logging.Logger;
-public class Log4jLoggerFactory implements WebBeansLoggerFactory {
+public class Log4j2LoggerFactory implements WebBeansLoggerFactory {
@Override
public Logger getLogger(final Class<?> clazz, final Locale desiredLocale) {
- return new Log4jLogger(clazz.getName(), ResourceBundle.getBundle("openwebbeans/Messages", desiredLocale).toString());
+ return new Log4j2Logger(clazz.getName(), ResourceBundle.getBundle("openwebbeans/Messages", desiredLocale).toString());
}
@Override
public Logger getLogger(final Class<?> clazz) {
- return new Log4jLogger(clazz.getName(), "openwebbeans/Messages");
+ return new Log4j2Logger(clazz.getName(), "openwebbeans/Messages");
}
}
Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/dyni/DynamicSubclass.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/dyni/DynamicSubclass.java?rev=1619878&r1=1619877&r2=1619878&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/dyni/DynamicSubclass.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/dyni/DynamicSubclass.java Fri Aug 22 18:11:16 2014
@@ -41,7 +41,6 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.HashMap;
-import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.concurrent.locks.ReentrantLock;
Copied: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/log/logger/Log4j2Logger.java (from r1618689, tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/log/logger/Log4jLogger.java)
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/log/logger/Log4j2Logger.java?p2=tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/log/logger/Log4j2Logger.java&p1=tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/log/logger/Log4jLogger.java&r1=1618689&r2=1619878&rev=1619878&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/log/logger/Log4jLogger.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/log/logger/Log4j2Logger.java Fri Aug 22 18:11:16 2014
@@ -17,185 +17,82 @@
package org.apache.openejb.log.logger;
-import org.apache.log4j.Appender;
-import org.apache.log4j.AppenderSkeleton;
-import org.apache.log4j.LogManager;
-import org.apache.log4j.Logger;
-import org.apache.log4j.Priority;
-import org.apache.log4j.spi.LoggingEvent;
-
-import java.lang.reflect.Field;
-import java.util.ArrayList;
-import java.util.Enumeration;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
import java.util.HashMap;
-import java.util.List;
import java.util.Map;
-import java.util.logging.Handler;
import java.util.logging.Level;
import java.util.logging.LogRecord;
-/**
- * java.util.logging.Logger implementation delegating to Log4j.
- * All methods can be used except:
- * setLevel
- * addHandler / getHandlers
- * setParent / getParent
- * setUseParentHandlers / getUseParentHandlers
- *
- * @author gnodet
- */
-public class Log4jLogger extends AbstractDelegatingLogger {
- private static final Map<Level, org.apache.log4j.Level> TO_LOG4J = new HashMap<Level, org.apache.log4j.Level>();
- private static final org.apache.log4j.Level TRACE;
+public class Log4j2Logger extends AbstractDelegatingLogger {
+ private static final Map<Level, org.apache.logging.log4j.Level> TO_LOG4J = new HashMap<>();
private final Logger log;
static {
//older versions of log4j don't have TRACE, use debug
- org.apache.log4j.Level t = org.apache.log4j.Level.DEBUG;
- try {
- final Field f = org.apache.log4j.Level.class.getField("TRACE");
- t = (org.apache.log4j.Level) f.get(null);
- } catch (final Throwable ex) {
- //ignore, assume old version of log4j
- }
- TRACE = t;
+ org.apache.logging.log4j.Level t = org.apache.logging.log4j.Level.DEBUG;
- TO_LOG4J.put(Level.ALL, org.apache.log4j.Level.ALL);
- TO_LOG4J.put(Level.SEVERE, org.apache.log4j.Level.ERROR);
- TO_LOG4J.put(Level.WARNING, org.apache.log4j.Level.WARN);
- TO_LOG4J.put(Level.INFO, org.apache.log4j.Level.INFO);
- TO_LOG4J.put(Level.CONFIG, org.apache.log4j.Level.DEBUG);
- TO_LOG4J.put(Level.FINE, org.apache.log4j.Level.DEBUG);
- TO_LOG4J.put(Level.FINER, TRACE);
- TO_LOG4J.put(Level.FINEST, TRACE);
- TO_LOG4J.put(Level.OFF, org.apache.log4j.Level.OFF);
+ TO_LOG4J.put(Level.ALL, org.apache.logging.log4j.Level.ALL);
+ TO_LOG4J.put(Level.SEVERE, org.apache.logging.log4j.Level.ERROR);
+ TO_LOG4J.put(Level.WARNING, org.apache.logging.log4j.Level.WARN);
+ TO_LOG4J.put(Level.INFO, org.apache.logging.log4j.Level.INFO);
+ TO_LOG4J.put(Level.CONFIG, org.apache.logging.log4j.Level.DEBUG);
+ TO_LOG4J.put(Level.FINE, org.apache.logging.log4j.Level.DEBUG);
+ TO_LOG4J.put(Level.FINER, org.apache.logging.log4j.Level.TRACE);
+ TO_LOG4J.put(Level.FINEST, org.apache.logging.log4j.Level.TRACE);
+ TO_LOG4J.put(Level.OFF, org.apache.logging.log4j.Level.OFF);
}
- public Log4jLogger(final String name, final String resourceBundleName) {
+ public Log4j2Logger(final String name, final String resourceBundleName) {
super(name, resourceBundleName);
log = LogManager.getLogger(name);
}
public Level getLevel() {
- final org.apache.log4j.Level l = log.getEffectiveLevel();
+ final org.apache.logging.log4j.Level l = log.getLevel();
if (l != null) {
return fromL4J(l);
}
return null;
}
- public void setLevel(final Level newLevel) throws SecurityException {
- log.setLevel(TO_LOG4J.get(newLevel));
- }
-
- public synchronized void addHandler(final Handler handler) throws SecurityException {
- log.addAppender(new HandlerWrapper(handler));
- }
-
- public synchronized void removeHandler(final Handler handler) throws SecurityException {
- log.removeAppender("HandlerWrapper-" + handler.hashCode());
- }
-
- public synchronized Handler[] getHandlers() {
- final List<Handler> ret = new ArrayList<Handler>();
- final Enumeration<?> en = log.getAllAppenders();
- while (en.hasMoreElements()) {
- final Appender ap = (Appender) en.nextElement();
- if (ap instanceof HandlerWrapper) {
- ret.add(((HandlerWrapper) ap).getHandler());
- }
- }
- return ret.toArray(new Handler[ret.size()]);
- }
-
protected void internalLogFormatted(final String msg, final LogRecord record) {
- log.log(AbstractDelegatingLogger.class.getName(),
- TO_LOG4J.get(record.getLevel()),
- msg,
- record.getThrown());
+ log.log(TO_LOG4J.get(record.getLevel()), msg, record.getThrown());
}
- private Level fromL4J(final org.apache.log4j.Level l) {
+ private Level fromL4J(final org.apache.logging.log4j.Level l) {
Level l2 = null;
- switch (l.toInt()) {
- case org.apache.log4j.Level.ALL_INT:
+ switch (l.getStandardLevel()) {
+ case ALL:
l2 = Level.ALL;
break;
- case org.apache.log4j.Level.FATAL_INT:
+ case FATAL:
l2 = Level.SEVERE;
break;
- case org.apache.log4j.Level.ERROR_INT:
+ case ERROR:
l2 = Level.SEVERE;
break;
- case org.apache.log4j.Level.WARN_INT:
+ case WARN:
l2 = Level.WARNING;
break;
- case org.apache.log4j.Level.INFO_INT:
+ case INFO:
l2 = Level.INFO;
break;
- case org.apache.log4j.Level.DEBUG_INT:
+ case DEBUG:
l2 = Level.FINE;
break;
- case org.apache.log4j.Level.OFF_INT:
+ case OFF:
l2 = Level.OFF;
break;
+ case TRACE:
+ l2 = Level.FINEST;
+ break;
default:
- if (l.toInt() == TRACE.toInt()) {
- l2 = Level.FINEST;
- }
+ l2 = Level.FINE;
}
return l2;
}
-
-
- private class HandlerWrapper extends AppenderSkeleton {
- Handler handler;
-
- public HandlerWrapper(final Handler h) {
- handler = h;
- name = "HandlerWrapper-" + h.hashCode();
- }
-
- public Handler getHandler() {
- return handler;
- }
-
- @Override
- protected void append(final LoggingEvent event) {
- final LogRecord lr = new LogRecord(fromL4J(event.getLevel()),
- event.getMessage().toString());
- lr.setLoggerName(event.getLoggerName());
- if (event.getThrowableInformation() != null) {
- lr.setThrown(event.getThrowableInformation().getThrowable());
- }
- final String rbname = getResourceBundleName();
- if (rbname != null) {
- lr.setResourceBundleName(rbname);
- lr.setResourceBundle(getResourceBundle());
- }
- handler.publish(lr);
- }
-
- public void close() {
- handler.close();
- closed = true;
- }
-
- public boolean requiresLayout() {
- return false;
- }
-
- @Override
- public Priority getThreshold() {
- return TO_LOG4J.get(handler.getLevel());
- }
-
- @Override
- public boolean isAsSevereAsThreshold(final Priority priority) {
- final Priority p = getThreshold();
- return p == null || priority.isGreaterOrEqual(p);
- }
- }
}
Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/testing/ApplicationComposers.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/testing/ApplicationComposers.java?rev=1619878&r1=1619877&r2=1619878&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/testing/ApplicationComposers.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/testing/ApplicationComposers.java Fri Aug 22 18:11:16 2014
@@ -73,7 +73,6 @@ import org.apache.webbeans.spi.ContextsS
import org.apache.webbeans.spi.LoaderService;
import org.apache.webbeans.web.lifecycle.test.MockHttpSession;
import org.apache.webbeans.web.lifecycle.test.MockServletContext;
-import org.apache.xbean.finder.Annotated;
import org.apache.xbean.finder.AnnotationFinder;
import org.apache.xbean.finder.ClassFinder;
import org.apache.xbean.finder.IAnnotationFinder;
@@ -85,8 +84,6 @@ import org.apache.xbean.finder.archive.C
import org.apache.xbean.finder.archive.JarArchive;
import org.xml.sax.InputSource;
-import javax.ejb.Singleton;
-import javax.ejb.Stateless;
import javax.enterprise.context.ConversationScoped;
import javax.enterprise.context.RequestScoped;
import javax.enterprise.context.SessionScoped;
Added: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/util/Log4j2LogStreamFactory.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/util/Log4j2LogStreamFactory.java?rev=1619878&view=auto
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/util/Log4j2LogStreamFactory.java (added)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/util/Log4j2LogStreamFactory.java Fri Aug 22 18:11:16 2014
@@ -0,0 +1,102 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.openejb.util;
+
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+// don't do the same "error" (historical actually) that in log4j one putting too much logic here
+public class Log4j2LogStreamFactory implements LogStreamFactory {
+ public Log4j2LogStreamFactory() {
+ // WARN: don't set all subproject loggers to log4j since API is not the same
+ // and it needs log4j1 fallback module to "work" (some parts are broken like config)
+ System.setProperty("openwebbeans.logging.factory", "org.apache.openejb.cdi.logging.Log4j2LoggerFactory");
+ }
+
+ @Override
+ public LogStream createLogStream(final LogCategory logCategory) {
+ return new Log4j2Stream(logCategory.getName());
+ }
+
+ private class Log4j2Stream implements LogStream {
+ private final Logger delegate;
+
+ public Log4j2Stream(final String name) {
+ this.delegate = LogManager.getLogger(name);
+ }
+
+ public boolean isFatalEnabled() {
+ return delegate.isFatalEnabled();
+ }
+
+ public void fatal(final String message) {
+ delegate.fatal(message);
+ }
+
+ public void fatal(final String message, final Throwable t) {
+ delegate.fatal(message, t);
+ }
+
+ public boolean isErrorEnabled() {
+ return delegate.isErrorEnabled();
+ }
+
+ public void error(final String message) {
+ delegate.error(message);
+ }
+
+ public void error(final String message, final Throwable t) {
+ delegate.error(message, t);
+ }
+
+ public boolean isWarnEnabled() {
+ return delegate.isWarnEnabled();
+ }
+
+ public void warn(final String message) {
+ delegate.warn(message);
+ }
+
+ public void warn(final String message, final Throwable t) {
+ delegate.warn(message, t);
+ }
+
+ public boolean isInfoEnabled() {
+ return delegate.isInfoEnabled();
+ }
+
+ public void info(final String message) {
+ delegate.info(message);
+ }
+
+ public void info(final String message, final Throwable t) {
+ delegate.info(message, t);
+ }
+
+ public boolean isDebugEnabled() {
+ return delegate.isDebugEnabled();
+ }
+
+ public void debug(final String message) {
+ delegate.debug(message);
+ }
+
+ public void debug(final String message, final Throwable t) {
+ delegate.debug(message, t);
+ }
+ }
+}
Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/util/Logger.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/util/Logger.java?rev=1619878&r1=1619877&r2=1619878&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/util/Logger.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/util/Logger.java Fri Aug 22 18:11:16 2014
@@ -55,15 +55,10 @@ public class Logger {
//See if user factory has been specified
String factoryName = SystemInstance.get().getOptions().get("openejb.log.factory", JuliLogStreamFactory.class.getName());
-
if ("jul".equalsIgnoreCase(factoryName) || "juli".equalsIgnoreCase(factoryName)) {
-
factoryName = JuliLogStreamFactory.class.getName();
-
} else if ("slf4j".equalsIgnoreCase(factoryName)) {
-
factoryName = Slf4jLogStreamFactory.class.getName();
-
} else if ("log4j".equalsIgnoreCase(factoryName)) {
if (exists("org.apache.log4j.Logger")) {
@@ -78,8 +73,9 @@ public class Logger {
}
} else if ("pax".equalsIgnoreCase(factoryName)) {
-
factoryName = "org.apache.openejb.util.PaxLogStreamFactory";
+ } else if ("log4j2".equalsIgnoreCase(factoryName)) {
+ factoryName = "org.apache.openejb.util.Log4j2LogStreamFactory";
}
if (factoryName != null) {
Modified: tomee/tomee/trunk/pom.xml
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/pom.xml?rev=1619878&r1=1619877&r2=1619878&view=diff
==============================================================================
--- tomee/tomee/trunk/pom.xml (original)
+++ tomee/tomee/trunk/pom.xml Fri Aug 22 18:11:16 2014
@@ -175,6 +175,7 @@
<mojarra.version>2.1.28</mojarra.version>
<slf4j.version>1.7.7</slf4j.version>
<log4j.version>1.2.17</log4j.version>
+ <log4j2.version>2.0.1</log4j2.version>
<osgi.framework.version>4.2.0</osgi.framework.version>
<version.hsqldb>2.3.2</version.hsqldb>
<version.axiom>1.2.14</version.axiom>
Modified: tomee/tomee/trunk/tomee/tomee-juli/src/main/java/org/apache/tomee/jul/formatter/log/ReloadableLog.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-juli/src/main/java/org/apache/tomee/jul/formatter/log/ReloadableLog.java?rev=1619878&r1=1619877&r2=1619878&view=diff
==============================================================================
--- tomee/tomee/trunk/tomee/tomee-juli/src/main/java/org/apache/tomee/jul/formatter/log/ReloadableLog.java (original)
+++ tomee/tomee/trunk/tomee/tomee-juli/src/main/java/org/apache/tomee/jul/formatter/log/ReloadableLog.java Fri Aug 22 18:11:16 2014
@@ -17,6 +17,7 @@
package org.apache.tomee.jul.formatter.log;
import org.apache.juli.logging.Log;
+import org.apache.openejb.loader.SystemInstance;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.InvocationTargetException;
@@ -39,9 +40,10 @@ public final class ReloadableLog {
private static final class ReloadableLogHandler implements InvocationHandler {
private static final String LOG4J_IMPL = "org.apache.tomee.loader.log.Log4jLog";
+ private static final String LOG4J2_IMPL = "org.apache.tomee.loader.log.Log4j2Log";
private static final String SLF4J_IMPL = "org.apache.tomee.loader.log.Slf4jLog";
- private final String factory;
+ private volatile String factory;
private final String name;
private final AtomicReference<Log> delegate = new AtomicReference<>();
private volatile boolean done = false;
@@ -58,9 +60,19 @@ public final class ReloadableLog {
}
try {
+ if (factory == null) {
+ final String f = TomEELog.getLoggerClazz();
+ if (f != null) {
+ factory = f;
+ }
+ }
switch (factory) {
case "org.apache.openejb.util.Log4jLogStreamFactory":
- delegate.set(newInstance(LOG4J_IMPL)); break;
+ delegate.set(newInstance(LOG4J_IMPL));
+ break;
+ case "org.apache.openejb.util.Log4j2LogStreamFactory":
+ delegate.set(newInstance(LOG4J2_IMPL));
+ break;
case "org.apache.openejb.util.Slf4jLogStreamFactory":
delegate.set(newInstance(SLF4J_IMPL));
break;
Modified: tomee/tomee/trunk/tomee/tomee-juli/src/main/java/org/apache/tomee/jul/formatter/log/TomEELog.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-juli/src/main/java/org/apache/tomee/jul/formatter/log/TomEELog.java?rev=1619878&r1=1619877&r2=1619878&view=diff
==============================================================================
--- tomee/tomee/trunk/tomee/tomee-juli/src/main/java/org/apache/tomee/jul/formatter/log/TomEELog.java (original)
+++ tomee/tomee/trunk/tomee/tomee-juli/src/main/java/org/apache/tomee/jul/formatter/log/TomEELog.java Fri Aug 22 18:11:16 2014
@@ -34,29 +34,34 @@ public class TomEELog implements Log {
final Thread thread = Thread.currentThread();
try {
final ClassLoader tccl = thread.getContextClassLoader();
+ final Class<?> systemInstance = tccl.loadClass("org.apache.openejb.loader.SystemInstance");
+ if (!Boolean.class.cast(systemInstance.getMethod("isInitialized").invoke(null))) {
+ return;
+ }
+
final Class<?> logger = tccl.loadClass("org.apache.openejb.util.Logger");
final Method m = logger.getDeclaredMethod("delegateClass");
loggerClazz = (String) m.invoke(null);
switch (loggerClazz) {
+ case "org.apache.openejb.util.Log4j2LogStreamFactory":
case "org.apache.openejb.util.Log4jLogStreamFactory":
- defaultLogger = false;
- initialized = true;
- return;
case "org.apache.openejb.util.Slf4jLogStreamFactory":
defaultLogger = false;
- initialized = true;
- return;
+ break;
default:
defaultLogger = true;
- initialized = true;
- return;
}
+ initialized = true;
} catch (final Throwable th) {
// no-op
}
}
}
+ public static String getLoggerClazz() {
+ return loggerClazz;
+ }
+
private final Log delegate;
public TomEELog() { // for ServiceLoader
Modified: tomee/tomee/trunk/tomee/tomee-loader/pom.xml
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-loader/pom.xml?rev=1619878&r1=1619877&r2=1619878&view=diff
==============================================================================
--- tomee/tomee/trunk/tomee/tomee-loader/pom.xml (original)
+++ tomee/tomee/trunk/tomee/tomee-loader/pom.xml Fri Aug 22 18:11:16 2014
@@ -54,6 +54,12 @@
<artifactId>log4j</artifactId>
<scope>provided</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.logging.log4j</groupId>
+ <artifactId>log4j-api</artifactId>
+ <version>${log4j2.version}</version>
+ <scope>provided</scope>
+ </dependency>
</dependencies>
</project>
Copied: tomee/tomee/trunk/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/log/Log4j2Log.java (from r1618689, tomee/tomee/trunk/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/log/Log4jLog.java)
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/log/Log4j2Log.java?p2=tomee/tomee/trunk/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/log/Log4j2Log.java&p1=tomee/tomee/trunk/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/log/Log4jLog.java&r1=1618689&r2=1619878&rev=1619878&view=diff
==============================================================================
--- tomee/tomee/trunk/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/log/Log4jLog.java (original)
+++ tomee/tomee/trunk/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/log/Log4j2Log.java Fri Aug 22 18:11:16 2014
@@ -18,14 +18,14 @@
package org.apache.tomee.loader.log;
import org.apache.juli.logging.Log;
-import org.apache.log4j.Level;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
-public class Log4jLog implements Log {
+public class Log4j2Log implements Log {
private final Logger log;
- public Log4jLog(final String logger) {
- this.log = Logger.getLogger(logger);
+ public Log4j2Log(final String logger) {
+ this.log = LogManager.getLogger(logger);
}
@Override
@@ -35,12 +35,12 @@ public class Log4jLog implements Log {
@Override
public boolean isErrorEnabled() {
- return log.isEnabledFor(Level.ERROR);
+ return log.isErrorEnabled();
}
@Override
public boolean isFatalEnabled() {
- return log.isEnabledFor(Level.FATAL);
+ return log.isFatalEnabled();
}
@Override
@@ -50,12 +50,12 @@ public class Log4jLog implements Log {
@Override
public boolean isTraceEnabled() {
- return log.isEnabledFor(Level.TRACE);
+ return log.isTraceEnabled();
}
@Override
public boolean isWarnEnabled() {
- return log.isEnabledFor(Level.WARN);
+ return log.isWarnEnabled();
}
@Override