You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by lu...@apache.org on 2013/03/22 12:46:48 UTC
svn commit: r1459734 - in
/struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2:
XWorkConstants.java util/logging/LoggerFactory.java
Author: lukaszlenart
Date: Fri Mar 22 11:46:48 2013
New Revision: 1459734
URL: http://svn.apache.org/r1459734
Log:
WW-3988 Adds xwor.loggerFactory to allow define which implementation to use
Modified:
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/XWorkConstants.java
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/util/logging/LoggerFactory.java
Modified: struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/XWorkConstants.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/XWorkConstants.java?rev=1459734&r1=1459733&r2=1459734&view=diff
==============================================================================
--- struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/XWorkConstants.java (original)
+++ struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/XWorkConstants.java Fri Mar 22 11:46:48 2013
@@ -15,4 +15,5 @@ public final class XWorkConstants {
public static final String ENABLE_OGNL_EXPRESSION_CACHE = "enableOGNLExpressionCache";
public static final String RELOAD_XML_CONFIGURATION = "reloadXmlConfiguration";
public static final String ALLOW_STATIC_METHOD_ACCESS = "allowStaticMethodAccess";
+ public static final String XWORK_LOGGER_FACTORY = "xwork.loggerFactory";
}
Modified: struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/util/logging/LoggerFactory.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/util/logging/LoggerFactory.java?rev=1459734&r1=1459733&r2=1459734&view=diff
==============================================================================
--- struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/util/logging/LoggerFactory.java (original)
+++ struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/util/logging/LoggerFactory.java Fri Mar 22 11:46:48 2013
@@ -15,6 +15,8 @@
*/
package com.opensymphony.xwork2.util.logging;
+import com.opensymphony.xwork2.XWorkConstants;
+import com.opensymphony.xwork2.XWorkException;
import com.opensymphony.xwork2.util.logging.jdk.JdkLoggerFactory;
import com.opensymphony.xwork2.util.logging.slf4j.Slf4jLoggerFactory;
@@ -25,7 +27,7 @@ import java.util.concurrent.locks.Reentr
* Creates loggers. Static accessor will lazily try to decide on the best factory if none specified.
*/
public abstract class LoggerFactory {
-
+
private static final ReadWriteLock lock = new ReentrantReadWriteLock();
private static LoggerFactory factory;
@@ -59,6 +61,16 @@ public abstract class LoggerFactory {
lock.writeLock().lock();
try {
if (factory == null) {
+ String userLoggerFactory = System.getProperty(XWorkConstants.XWORK_LOGGER_FACTORY);
+ if (userLoggerFactory != null) {
+ try {
+ Class clazz = Class.forName(userLoggerFactory);
+ factory = (LoggerFactory) clazz.newInstance();
+ } catch (Exception e) {
+ throw new XWorkException("System property [" + XWorkConstants.XWORK_LOGGER_FACTORY +
+ "] was defined as [" + userLoggerFactory + "] but there is a problem to use that LoggerFactory!", e);
+ }
+ }
try {
Class.forName("org.apache.commons.logging.LogFactory");
factory = new com.opensymphony.xwork2.util.logging.commons.CommonsLoggerFactory();