http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/dispatcher/FilterDispatcherCompatWeblogic61.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/struts2/dispatcher/FilterDispatcherCompatWeblogic61.java
 
b/core/src/main/java/org/apache/struts2/dispatcher/FilterDispatcherCompatWeblogic61.java
index c46dc4b..6598d71 100644
--- 
a/core/src/main/java/org/apache/struts2/dispatcher/FilterDispatcherCompatWeblogic61.java
+++ 
b/core/src/main/java/org/apache/struts2/dispatcher/FilterDispatcherCompatWeblogic61.java
@@ -29,8 +29,8 @@ import javax.servlet.http.HttpSession;
 
 import org.apache.struts2.config.ServletContextSingleton;
 
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 
 
 /**
@@ -52,7 +52,7 @@ import com.opensymphony.xwork2.util.logging.LoggerFactory;
  */
 public class FilterDispatcherCompatWeblogic61 extends FilterDispatcher {
 
-    private static Logger LOG = 
LoggerFactory.getLogger(FilterDispatcherCompatWeblogic61.class);
+    private static Logger LOG = 
LogManager.getLogger(FilterDispatcherCompatWeblogic61.class);
 
     /**
      * dummy setter for {@link #filterConfig}; this method

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/dispatcher/HttpHeaderResult.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/struts2/dispatcher/HttpHeaderResult.java 
b/core/src/main/java/org/apache/struts2/dispatcher/HttpHeaderResult.java
index b4ad906..1f07c42 100644
--- a/core/src/main/java/org/apache/struts2/dispatcher/HttpHeaderResult.java
+++ b/core/src/main/java/org/apache/struts2/dispatcher/HttpHeaderResult.java
@@ -26,8 +26,8 @@ import com.opensymphony.xwork2.ActionInvocation;
 import com.opensymphony.xwork2.Result;
 import com.opensymphony.xwork2.util.TextParseUtil;
 import com.opensymphony.xwork2.util.ValueStack;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 import org.apache.struts2.ServletActionContext;
 
 import javax.servlet.http.HttpServletResponse;
@@ -80,7 +80,7 @@ import java.util.Map;
 public class HttpHeaderResult implements Result {
 
     private static final long serialVersionUID = 195648957144219214L;
-    private static final Logger LOG = 
LoggerFactory.getLogger(HttpHeaderResult.class);
+    private static final Logger LOG = 
LogManager.getLogger(HttpHeaderResult.class);
 
     /**
      * This result type doesn't have a default param, null is ok to reduce 
noice in logs

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/dispatcher/PlainTextResult.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/struts2/dispatcher/PlainTextResult.java 
b/core/src/main/java/org/apache/struts2/dispatcher/PlainTextResult.java
index fc14aab..38259eb 100644
--- a/core/src/main/java/org/apache/struts2/dispatcher/PlainTextResult.java
+++ b/core/src/main/java/org/apache/struts2/dispatcher/PlainTextResult.java
@@ -22,8 +22,8 @@
 package org.apache.struts2.dispatcher;
 
 import com.opensymphony.xwork2.ActionInvocation;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 
 import javax.servlet.ServletContext;
 import javax.servlet.http.HttpServletResponse;
@@ -77,7 +77,7 @@ public class PlainTextResult extends StrutsResultSupport {
 
     public static final int BUFFER_SIZE = 1024;
 
-    private static final Logger LOG = 
LoggerFactory.getLogger(PlainTextResult.class);
+    private static final Logger LOG = 
LogManager.getLogger(PlainTextResult.class);
 
     private static final long serialVersionUID = 3633371605905583950L;
 

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/dispatcher/ServletDispatcherResult.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/struts2/dispatcher/ServletDispatcherResult.java 
b/core/src/main/java/org/apache/struts2/dispatcher/ServletDispatcherResult.java
index 3550a8e..6cd5eb1 100644
--- 
a/core/src/main/java/org/apache/struts2/dispatcher/ServletDispatcherResult.java
+++ 
b/core/src/main/java/org/apache/struts2/dispatcher/ServletDispatcherResult.java
@@ -23,8 +23,8 @@ package org.apache.struts2.dispatcher;
 
 import com.opensymphony.xwork2.ActionInvocation;
 import com.opensymphony.xwork2.inject.Inject;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.ObjectUtils;
 import org.apache.struts2.ServletActionContext;
@@ -95,7 +95,7 @@ public class ServletDispatcherResult extends 
StrutsResultSupport {
 
     private static final long serialVersionUID = -1970659272360685627L;
 
-    private static final Logger LOG = 
LoggerFactory.getLogger(ServletDispatcherResult.class);
+    private static final Logger LOG = 
LogManager.getLogger(ServletDispatcherResult.class);
 
     private UrlHelper urlHelper;
 

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/dispatcher/ServletRedirectResult.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/struts2/dispatcher/ServletRedirectResult.java 
b/core/src/main/java/org/apache/struts2/dispatcher/ServletRedirectResult.java
index 786deef..2293c59 100644
--- 
a/core/src/main/java/org/apache/struts2/dispatcher/ServletRedirectResult.java
+++ 
b/core/src/main/java/org/apache/struts2/dispatcher/ServletRedirectResult.java
@@ -25,8 +25,8 @@ import com.opensymphony.xwork2.ActionContext;
 import com.opensymphony.xwork2.ActionInvocation;
 import com.opensymphony.xwork2.config.entities.ResultConfig;
 import com.opensymphony.xwork2.inject.Inject;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 import com.opensymphony.xwork2.util.reflection.ReflectionException;
 import com.opensymphony.xwork2.util.reflection.ReflectionExceptionHandler;
 import org.apache.struts2.ServletActionContext;
@@ -100,7 +100,7 @@ public class ServletRedirectResult extends 
StrutsResultSupport implements Reflec
 
     private static final long serialVersionUID = 6316947346435301270L;
 
-    private static final Logger LOG = 
LoggerFactory.getLogger(ServletRedirectResult.class);
+    private static final Logger LOG = 
LogManager.getLogger(ServletRedirectResult.class);
 
     protected boolean prependServletContext = true;
     protected ActionMapper actionMapper;

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/dispatcher/StreamResult.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/dispatcher/StreamResult.java 
b/core/src/main/java/org/apache/struts2/dispatcher/StreamResult.java
index 66a17c9..05236ec 100644
--- a/core/src/main/java/org/apache/struts2/dispatcher/StreamResult.java
+++ b/core/src/main/java/org/apache/struts2/dispatcher/StreamResult.java
@@ -27,8 +27,8 @@ import java.io.OutputStream;
 import javax.servlet.http.HttpServletResponse;
 
 import com.opensymphony.xwork2.ActionInvocation;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 import com.opensymphony.xwork2.util.ValueStack;
 
 /**
@@ -91,7 +91,7 @@ public class StreamResult extends StrutsResultSupport {
 
     private static final long serialVersionUID = -1468409635999059850L;
 
-    protected static final Logger LOG = 
LoggerFactory.getLogger(StreamResult.class);
+    protected static final Logger LOG = 
LogManager.getLogger(StreamResult.class);
 
     public static final String DEFAULT_PARAM = "inputName";
 

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/dispatcher/StrutsResultSupport.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/struts2/dispatcher/StrutsResultSupport.java 
b/core/src/main/java/org/apache/struts2/dispatcher/StrutsResultSupport.java
index bbcffa3..b7d57ba 100644
--- a/core/src/main/java/org/apache/struts2/dispatcher/StrutsResultSupport.java
+++ b/core/src/main/java/org/apache/struts2/dispatcher/StrutsResultSupport.java
@@ -31,8 +31,8 @@ import org.apache.struts2.StrutsStatics;
 import com.opensymphony.xwork2.ActionInvocation;
 import com.opensymphony.xwork2.Result;
 import com.opensymphony.xwork2.util.TextParseUtil;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 
 
 /**
@@ -105,7 +105,7 @@ import com.opensymphony.xwork2.util.logging.LoggerFactory;
  */
 public abstract class StrutsResultSupport implements Result, StrutsStatics {
 
-    private static final Logger LOG = 
LoggerFactory.getLogger(StrutsResultSupport.class);
+    private static final Logger LOG = 
LogManager.getLogger(StrutsResultSupport.class);
 
     /** The default parameter */
     public static final String DEFAULT_PARAM = "location";

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/dispatcher/VelocityResult.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/struts2/dispatcher/VelocityResult.java 
b/core/src/main/java/org/apache/struts2/dispatcher/VelocityResult.java
index 8b37b6c..2a00ad9 100644
--- a/core/src/main/java/org/apache/struts2/dispatcher/VelocityResult.java
+++ b/core/src/main/java/org/apache/struts2/dispatcher/VelocityResult.java
@@ -25,8 +25,8 @@ import com.opensymphony.xwork2.ActionContext;
 import com.opensymphony.xwork2.ActionInvocation;
 import com.opensymphony.xwork2.inject.Inject;
 import com.opensymphony.xwork2.util.ValueStack;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 import org.apache.struts2.ServletActionContext;
 import org.apache.struts2.StrutsConstants;
 import org.apache.struts2.views.JspSupportServlet;
@@ -85,7 +85,7 @@ public class VelocityResult extends StrutsResultSupport {
 
     private static final long serialVersionUID = 7268830767762559424L;
 
-    private static final Logger LOG = 
LoggerFactory.getLogger(VelocityResult.class);
+    private static final Logger LOG = 
LogManager.getLogger(VelocityResult.class);
     
     private String defaultEncoding;
     private VelocityManager velocityManager;

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/dispatcher/mapper/CompositeActionMapper.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/struts2/dispatcher/mapper/CompositeActionMapper.java
 
b/core/src/main/java/org/apache/struts2/dispatcher/mapper/CompositeActionMapper.java
index 654fb1d..17a4611 100644
--- 
a/core/src/main/java/org/apache/struts2/dispatcher/mapper/CompositeActionMapper.java
+++ 
b/core/src/main/java/org/apache/struts2/dispatcher/mapper/CompositeActionMapper.java
@@ -24,8 +24,8 @@ package org.apache.struts2.dispatcher.mapper;
 import com.opensymphony.xwork2.config.ConfigurationManager;
 import com.opensymphony.xwork2.inject.Container;
 import com.opensymphony.xwork2.inject.Inject;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 import org.apache.struts2.StrutsConstants;
 
 import javax.servlet.http.HttpServletRequest;
@@ -47,7 +47,7 @@ import java.util.List;
  */
 public class CompositeActionMapper implements ActionMapper {
 
-    private static final Logger LOG = 
LoggerFactory.getLogger(CompositeActionMapper.class);
+    private static final Logger LOG = 
LogManager.getLogger(CompositeActionMapper.class);
 
     protected List<ActionMapper> actionMappers = new 
LinkedList<ActionMapper>();
 

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/dispatcher/mapper/DefaultActionMapper.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/struts2/dispatcher/mapper/DefaultActionMapper.java
 
b/core/src/main/java/org/apache/struts2/dispatcher/mapper/DefaultActionMapper.java
index a7a1a69..1370d0e 100644
--- 
a/core/src/main/java/org/apache/struts2/dispatcher/mapper/DefaultActionMapper.java
+++ 
b/core/src/main/java/org/apache/struts2/dispatcher/mapper/DefaultActionMapper.java
@@ -27,8 +27,8 @@ import com.opensymphony.xwork2.config.ConfigurationManager;
 import com.opensymphony.xwork2.config.entities.PackageConfig;
 import com.opensymphony.xwork2.inject.Container;
 import com.opensymphony.xwork2.inject.Inject;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.struts2.RequestUtils;
 import org.apache.struts2.ServletActionContext;
@@ -110,7 +110,7 @@ import java.util.regex.Pattern;
  */
 public class DefaultActionMapper implements ActionMapper {
 
-    private static final Logger LOG = 
LoggerFactory.getLogger(DefaultActionMapper.class);
+    private static final Logger LOG = 
LogManager.getLogger(DefaultActionMapper.class);
 
     protected static final String METHOD_PREFIX = "method:";
     protected static final String ACTION_PREFIX = "action:";

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/dispatcher/mapper/PrefixBasedActionMapper.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/struts2/dispatcher/mapper/PrefixBasedActionMapper.java
 
b/core/src/main/java/org/apache/struts2/dispatcher/mapper/PrefixBasedActionMapper.java
index 0abfaeb..f43d802 100644
--- 
a/core/src/main/java/org/apache/struts2/dispatcher/mapper/PrefixBasedActionMapper.java
+++ 
b/core/src/main/java/org/apache/struts2/dispatcher/mapper/PrefixBasedActionMapper.java
@@ -3,8 +3,8 @@ package org.apache.struts2.dispatcher.mapper;
 import com.opensymphony.xwork2.config.ConfigurationManager;
 import com.opensymphony.xwork2.inject.Container;
 import com.opensymphony.xwork2.inject.Inject;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 import org.apache.struts2.RequestUtils;
 import org.apache.struts2.StrutsConstants;
 
@@ -41,7 +41,7 @@ import java.util.Map;
  */
 public class PrefixBasedActionMapper extends DefaultActionMapper implements 
ActionMapper {
 
-    private static final Logger LOG = 
LoggerFactory.getLogger(PrefixBasedActionMapper.class);
+    private static final Logger LOG = 
LogManager.getLogger(PrefixBasedActionMapper.class);
 
     protected Container container;
     protected Map<String, ActionMapper> actionMappers = new HashMap<String, 
ActionMapper>();

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/dispatcher/mapper/Restful2ActionMapper.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/struts2/dispatcher/mapper/Restful2ActionMapper.java
 
b/core/src/main/java/org/apache/struts2/dispatcher/mapper/Restful2ActionMapper.java
index 3f08e84..d00d797 100644
--- 
a/core/src/main/java/org/apache/struts2/dispatcher/mapper/Restful2ActionMapper.java
+++ 
b/core/src/main/java/org/apache/struts2/dispatcher/mapper/Restful2ActionMapper.java
@@ -23,8 +23,8 @@ package org.apache.struts2.dispatcher.mapper;
 
 import com.opensymphony.xwork2.config.ConfigurationManager;
 import com.opensymphony.xwork2.inject.Inject;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 import org.apache.struts2.StrutsConstants;
 
 import javax.servlet.http.HttpServletRequest;
@@ -38,7 +38,7 @@ import java.util.StringTokenizer;
  */
 public class Restful2ActionMapper extends DefaultActionMapper {
 
-    protected static final Logger LOG = 
LoggerFactory.getLogger(Restful2ActionMapper.class);
+    protected static final Logger LOG = 
LogManager.getLogger(Restful2ActionMapper.class);
     public static final String HTTP_METHOD_PARAM = "__http_method";
     private String idParameterName = null;
     

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/dispatcher/mapper/RestfulActionMapper.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/struts2/dispatcher/mapper/RestfulActionMapper.java
 
b/core/src/main/java/org/apache/struts2/dispatcher/mapper/RestfulActionMapper.java
index b2378f4..7af01c3 100644
--- 
a/core/src/main/java/org/apache/struts2/dispatcher/mapper/RestfulActionMapper.java
+++ 
b/core/src/main/java/org/apache/struts2/dispatcher/mapper/RestfulActionMapper.java
@@ -22,8 +22,8 @@
 package org.apache.struts2.dispatcher.mapper;
 
 import com.opensymphony.xwork2.config.ConfigurationManager;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 import org.apache.struts2.RequestUtils;
 
 import javax.servlet.http.HttpServletRequest;
@@ -38,7 +38,7 @@ import java.util.StringTokenizer;
  * http://struts.apache.org/2.x/docs/restfulactionmapper.html
  */
 public class RestfulActionMapper implements ActionMapper {
-    protected static final Logger LOG = 
LoggerFactory.getLogger(RestfulActionMapper.class);
+    protected static final Logger LOG = 
LogManager.getLogger(RestfulActionMapper.class);
 
     /* (non-Javadoc)
      * @see 
org.apache.struts2.dispatcher.mapper.ActionMapper#getMapping(javax.servlet.http.HttpServletRequest)

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/dispatcher/multipart/JakartaMultiPartRequest.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/struts2/dispatcher/multipart/JakartaMultiPartRequest.java
 
b/core/src/main/java/org/apache/struts2/dispatcher/multipart/JakartaMultiPartRequest.java
index eecec0e..5e1d19d 100644
--- 
a/core/src/main/java/org/apache/struts2/dispatcher/multipart/JakartaMultiPartRequest.java
+++ 
b/core/src/main/java/org/apache/struts2/dispatcher/multipart/JakartaMultiPartRequest.java
@@ -24,8 +24,8 @@ package org.apache.struts2.dispatcher.multipart;
 import com.opensymphony.xwork2.LocaleProvider;
 import com.opensymphony.xwork2.inject.Inject;
 import com.opensymphony.xwork2.util.LocalizedTextUtil;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 import org.apache.commons.fileupload.FileItem;
 import org.apache.commons.fileupload.FileUploadBase;
 import org.apache.commons.fileupload.FileUploadException;
@@ -54,7 +54,7 @@ import java.util.Set;
  */
 public class JakartaMultiPartRequest implements MultiPartRequest {
 
-    static final Logger LOG = 
LoggerFactory.getLogger(JakartaMultiPartRequest.class);
+    static final Logger LOG = 
LogManager.getLogger(JakartaMultiPartRequest.class);
 
     // maps parameter name -> List of FileItem objects
     protected Map<String, List<FileItem>> files = new HashMap<String, 
List<FileItem>>();

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/dispatcher/multipart/JakartaStreamMultiPartRequest.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/struts2/dispatcher/multipart/JakartaStreamMultiPartRequest.java
 
b/core/src/main/java/org/apache/struts2/dispatcher/multipart/JakartaStreamMultiPartRequest.java
index 6fbd2c3..e0c5294 100644
--- 
a/core/src/main/java/org/apache/struts2/dispatcher/multipart/JakartaStreamMultiPartRequest.java
+++ 
b/core/src/main/java/org/apache/struts2/dispatcher/multipart/JakartaStreamMultiPartRequest.java
@@ -3,8 +3,8 @@ package org.apache.struts2.dispatcher.multipart;
 import com.opensymphony.xwork2.LocaleProvider;
 import com.opensymphony.xwork2.inject.Inject;
 import com.opensymphony.xwork2.util.LocalizedTextUtil;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 import org.apache.commons.fileupload.FileItemIterator;
 import org.apache.commons.fileupload.FileItemStream;
 import org.apache.commons.fileupload.FileUploadBase;
@@ -40,7 +40,7 @@ import java.util.Map;
  */
 public class JakartaStreamMultiPartRequest implements MultiPartRequest {
 
-    static final Logger LOG = 
LoggerFactory.getLogger(JakartaStreamMultiPartRequest.class);
+    static final Logger LOG = 
LogManager.getLogger(JakartaStreamMultiPartRequest.class);
 
     /**
      * Defines the internal buffer size used during streaming operations.

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/dispatcher/multipart/MultiPartRequestWrapper.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/struts2/dispatcher/multipart/MultiPartRequestWrapper.java
 
b/core/src/main/java/org/apache/struts2/dispatcher/multipart/MultiPartRequestWrapper.java
index ddc4275..6c4b079 100644
--- 
a/core/src/main/java/org/apache/struts2/dispatcher/multipart/MultiPartRequestWrapper.java
+++ 
b/core/src/main/java/org/apache/struts2/dispatcher/multipart/MultiPartRequestWrapper.java
@@ -24,8 +24,8 @@ package org.apache.struts2.dispatcher.multipart;
 import com.opensymphony.xwork2.DefaultLocaleProvider;
 import com.opensymphony.xwork2.LocaleProvider;
 import com.opensymphony.xwork2.util.LocalizedTextUtil;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 import org.apache.struts2.dispatcher.StrutsRequestWrapper;
 
 import javax.servlet.http.HttpServletRequest;
@@ -58,7 +58,7 @@ import java.util.Vector;
  */
 public class MultiPartRequestWrapper extends StrutsRequestWrapper {
 
-    protected static final Logger LOG = 
LoggerFactory.getLogger(MultiPartRequestWrapper.class);
+    protected static final Logger LOG = 
LogManager.getLogger(MultiPartRequestWrapper.class);
 
     private Collection<String> errors;
     private MultiPartRequest multi;

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/dispatcher/ng/InitOperations.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/struts2/dispatcher/ng/InitOperations.java 
b/core/src/main/java/org/apache/struts2/dispatcher/ng/InitOperations.java
index 6bce2b6..e0c4316 100644
--- a/core/src/main/java/org/apache/struts2/dispatcher/ng/InitOperations.java
+++ b/core/src/main/java/org/apache/struts2/dispatcher/ng/InitOperations.java
@@ -23,6 +23,7 @@ package org.apache.struts2.dispatcher.ng;
 import com.opensymphony.xwork2.ActionContext;
 import com.opensymphony.xwork2.util.ClassLoaderUtil;
 import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.LogManager;
 import org.apache.struts2.StrutsConstants;
 import org.apache.struts2.dispatcher.Dispatcher;
 import org.apache.struts2.dispatcher.StaticContentLoader;
@@ -46,6 +47,7 @@ public class InitOperations {
     /**
      * Initializes the internal Struts logging
      */
+    @Deprecated
     public void initLogging( HostConfig filterConfig ) {
         String factoryName = filterConfig.getInitParameter("loggerFactory");
         if (factoryName != null) {

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/dispatcher/ng/PrepareOperations.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/struts2/dispatcher/ng/PrepareOperations.java 
b/core/src/main/java/org/apache/struts2/dispatcher/ng/PrepareOperations.java
index ccf21c7..bb60ce4 100644
--- a/core/src/main/java/org/apache/struts2/dispatcher/ng/PrepareOperations.java
+++ b/core/src/main/java/org/apache/struts2/dispatcher/ng/PrepareOperations.java
@@ -23,8 +23,8 @@ package org.apache.struts2.dispatcher.ng;
 import com.opensymphony.xwork2.ActionContext;
 import com.opensymphony.xwork2.util.ValueStack;
 import com.opensymphony.xwork2.util.ValueStackFactory;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 import org.apache.struts2.RequestUtils;
 import org.apache.struts2.StrutsException;
 import org.apache.struts2.dispatcher.Dispatcher;
@@ -45,12 +45,12 @@ import java.util.regex.Pattern;
  */
 public class PrepareOperations {
 
-    private static final Logger LOG = 
LoggerFactory.getLogger(PrepareOperations.class);
+    private static final Logger LOG = 
LogManager.getLogger(PrepareOperations.class);
 
     private Dispatcher dispatcher;
     private static final String STRUTS_ACTION_MAPPING_KEY = 
"struts.actionMapping";
     public static final String CLEANUP_RECURSION_COUNTER = 
"__cleanup_recursion_counter";
-    private Logger log = LoggerFactory.getLogger(PrepareOperations.class);
+    private Logger log = LogManager.getLogger(PrepareOperations.class);
 
     @Deprecated
     public PrepareOperations(ServletContext servletContext, Dispatcher 
dispatcher) {

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/impl/PrefixBasedActionProxyFactory.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/struts2/impl/PrefixBasedActionProxyFactory.java 
b/core/src/main/java/org/apache/struts2/impl/PrefixBasedActionProxyFactory.java
index afbb189..56f86e5 100644
--- 
a/core/src/main/java/org/apache/struts2/impl/PrefixBasedActionProxyFactory.java
+++ 
b/core/src/main/java/org/apache/struts2/impl/PrefixBasedActionProxyFactory.java
@@ -5,8 +5,8 @@ import com.opensymphony.xwork2.ActionProxyFactory;
 import com.opensymphony.xwork2.DefaultActionProxyFactory;
 import com.opensymphony.xwork2.inject.Container;
 import com.opensymphony.xwork2.inject.Inject;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 import org.apache.struts2.StrutsConstants;
 
 import java.util.HashMap;
@@ -33,7 +33,7 @@ import java.util.Map;
  */
 public class PrefixBasedActionProxyFactory extends DefaultActionProxyFactory {
 
-    private static final Logger LOG = 
LoggerFactory.getLogger(PrefixBasedActionProxyFactory.class);
+    private static final Logger LOG = 
LogManager.getLogger(PrefixBasedActionProxyFactory.class);
 
     private Map<String, ActionProxyFactory> actionProxyFactories = new 
HashMap<String, ActionProxyFactory>();
     private ActionProxyFactory defaultFactory;

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/interceptor/CheckboxInterceptor.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/struts2/interceptor/CheckboxInterceptor.java 
b/core/src/main/java/org/apache/struts2/interceptor/CheckboxInterceptor.java
index b611ebc..5042008 100644
--- a/core/src/main/java/org/apache/struts2/interceptor/CheckboxInterceptor.java
+++ b/core/src/main/java/org/apache/struts2/interceptor/CheckboxInterceptor.java
@@ -22,8 +22,8 @@
 package org.apache.struts2.interceptor;
 
 import com.opensymphony.xwork2.ActionInvocation;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
 
 import java.util.Map;
@@ -55,7 +55,7 @@ public class CheckboxInterceptor extends AbstractInterceptor {
 
     private String uncheckedValue = Boolean.FALSE.toString();
 
-    private static final Logger LOG = 
LoggerFactory.getLogger(CheckboxInterceptor.class);
+    private static final Logger LOG = 
LogManager.getLogger(CheckboxInterceptor.class);
 
     public String intercept(ActionInvocation ai) throws Exception {
         Map<String, Object> parameters = 
ai.getInvocationContext().getParameters();

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/interceptor/ClearSessionInterceptor.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/struts2/interceptor/ClearSessionInterceptor.java
 
b/core/src/main/java/org/apache/struts2/interceptor/ClearSessionInterceptor.java
index 6e44570..cf2d797 100644
--- 
a/core/src/main/java/org/apache/struts2/interceptor/ClearSessionInterceptor.java
+++ 
b/core/src/main/java/org/apache/struts2/interceptor/ClearSessionInterceptor.java
@@ -26,8 +26,8 @@ import java.util.Map;
 import com.opensymphony.xwork2.ActionContext;
 import com.opensymphony.xwork2.ActionInvocation;
 import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 
 /**
  * <!-- START SNIPPET: description -->
@@ -77,7 +77,7 @@ public class ClearSessionInterceptor extends 
AbstractInterceptor {
 
     private static final long serialVersionUID = -2102199238428329238L;
 
-    private static final Logger LOG = 
LoggerFactory.getLogger(ClearSessionInterceptor.class);
+    private static final Logger LOG = 
LogManager.getLogger(ClearSessionInterceptor.class);
 
     /* (non-Javadoc)
      * @see 
com.opensymphony.xwork2.interceptor.Interceptor#intercept(com.opensymphony.xwork2.ActionInvocation)

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/interceptor/CookieInterceptor.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/struts2/interceptor/CookieInterceptor.java 
b/core/src/main/java/org/apache/struts2/interceptor/CookieInterceptor.java
index 06c4c30..74e104b 100644
--- a/core/src/main/java/org/apache/struts2/interceptor/CookieInterceptor.java
+++ b/core/src/main/java/org/apache/struts2/interceptor/CookieInterceptor.java
@@ -29,8 +29,8 @@ import 
com.opensymphony.xwork2.security.AcceptedPatternsChecker;
 import com.opensymphony.xwork2.security.ExcludedPatternsChecker;
 import com.opensymphony.xwork2.util.TextParseUtil;
 import com.opensymphony.xwork2.util.ValueStack;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 import org.apache.struts2.ServletActionContext;
 
 import javax.servlet.http.Cookie;
@@ -167,7 +167,7 @@ public class CookieInterceptor extends AbstractInterceptor {
 
     private static final long serialVersionUID = 4153142432948747305L;
 
-    private static final Logger LOG = 
LoggerFactory.getLogger(CookieInterceptor.class);
+    private static final Logger LOG = 
LogManager.getLogger(CookieInterceptor.class);
 
     private static final String ACCEPTED_PATTERN = 
"[a-zA-Z0-9\\.\\]\\[_'\\s]+";
 

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/interceptor/CookieProviderInterceptor.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/struts2/interceptor/CookieProviderInterceptor.java
 
b/core/src/main/java/org/apache/struts2/interceptor/CookieProviderInterceptor.java
index 88d829c..f2798a0 100644
--- 
a/core/src/main/java/org/apache/struts2/interceptor/CookieProviderInterceptor.java
+++ 
b/core/src/main/java/org/apache/struts2/interceptor/CookieProviderInterceptor.java
@@ -25,8 +25,8 @@ import com.opensymphony.xwork2.ActionContext;
 import com.opensymphony.xwork2.ActionInvocation;
 import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
 import com.opensymphony.xwork2.interceptor.PreResultListener;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 import org.apache.struts2.StrutsStatics;
 
 import javax.servlet.http.Cookie;
@@ -68,7 +68,7 @@ import java.util.Set;
  */
 public class CookieProviderInterceptor extends AbstractInterceptor implements 
PreResultListener {
 
-    private static final Logger LOG = 
LoggerFactory.getLogger(CookieProviderInterceptor.class);
+    private static final Logger LOG = 
LogManager.getLogger(CookieProviderInterceptor.class);
 
     public String intercept(ActionInvocation invocation) throws Exception {
         invocation.addPreResultListener(this);

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/interceptor/CreateSessionInterceptor.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/struts2/interceptor/CreateSessionInterceptor.java
 
b/core/src/main/java/org/apache/struts2/interceptor/CreateSessionInterceptor.java
index 39a7024..89251f4 100644
--- 
a/core/src/main/java/org/apache/struts2/interceptor/CreateSessionInterceptor.java
+++ 
b/core/src/main/java/org/apache/struts2/interceptor/CreateSessionInterceptor.java
@@ -23,8 +23,8 @@ package org.apache.struts2.interceptor;
 
 import com.opensymphony.xwork2.ActionInvocation;
 import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 import org.apache.struts2.ServletActionContext;
 import org.apache.struts2.dispatcher.SessionMap;
 
@@ -83,7 +83,7 @@ public class CreateSessionInterceptor extends 
AbstractInterceptor {
 
     private static final long serialVersionUID = -4590322556118858869L;
 
-    private static final Logger LOG = 
LoggerFactory.getLogger(CreateSessionInterceptor.class);
+    private static final Logger LOG = 
LogManager.getLogger(CreateSessionInterceptor.class);
 
 
     /* (non-Javadoc)

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/interceptor/DateTextFieldInterceptor.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/struts2/interceptor/DateTextFieldInterceptor.java
 
b/core/src/main/java/org/apache/struts2/interceptor/DateTextFieldInterceptor.java
index f5bda69..cef6905 100644
--- 
a/core/src/main/java/org/apache/struts2/interceptor/DateTextFieldInterceptor.java
+++ 
b/core/src/main/java/org/apache/struts2/interceptor/DateTextFieldInterceptor.java
@@ -11,12 +11,12 @@ import java.util.Map.Entry;
 
 import com.opensymphony.xwork2.ActionInvocation;
 import com.opensymphony.xwork2.interceptor.Interceptor;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 
 public class DateTextFieldInterceptor implements Interceptor {
 
-    private static final Logger LOG = 
LoggerFactory.getLogger(DateTextFieldInterceptor.class);
+    private static final Logger LOG = 
LogManager.getLogger(DateTextFieldInterceptor.class);
 
     public static enum DateWord {
 

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/interceptor/DeprecationInterceptor.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/struts2/interceptor/DeprecationInterceptor.java 
b/core/src/main/java/org/apache/struts2/interceptor/DeprecationInterceptor.java
index bf4d17f..16974d8 100644
--- 
a/core/src/main/java/org/apache/struts2/interceptor/DeprecationInterceptor.java
+++ 
b/core/src/main/java/org/apache/struts2/interceptor/DeprecationInterceptor.java
@@ -5,8 +5,8 @@ import com.opensymphony.xwork2.XWorkConstants;
 import com.opensymphony.xwork2.inject.Container;
 import com.opensymphony.xwork2.inject.Inject;
 import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 import org.apache.struts2.StrutsConstants;
 
 import java.lang.reflect.Field;
@@ -25,7 +25,7 @@ import java.util.Set;
  */
 public class DeprecationInterceptor extends AbstractInterceptor {
 
-    private static final Logger LOG = 
LoggerFactory.getLogger(DeprecationInterceptor.class);
+    private static final Logger LOG = 
LogManager.getLogger(DeprecationInterceptor.class);
 
     private Container container;
     private boolean devMode;

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/interceptor/ExecuteAndWaitInterceptor.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/struts2/interceptor/ExecuteAndWaitInterceptor.java
 
b/core/src/main/java/org/apache/struts2/interceptor/ExecuteAndWaitInterceptor.java
index 7d8b542..9d42dfb 100644
--- 
a/core/src/main/java/org/apache/struts2/interceptor/ExecuteAndWaitInterceptor.java
+++ 
b/core/src/main/java/org/apache/struts2/interceptor/ExecuteAndWaitInterceptor.java
@@ -32,8 +32,8 @@ import com.opensymphony.xwork2.inject.Container;
 import com.opensymphony.xwork2.inject.Inject;
 import com.opensymphony.xwork2.config.entities.ResultConfig;
 import com.opensymphony.xwork2.interceptor.MethodFilterInterceptor;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 import org.apache.struts2.util.TokenHelper;
 import org.apache.struts2.ServletActionContext;
 import org.apache.struts2.dispatcher.Dispatcher;
@@ -175,7 +175,7 @@ public class ExecuteAndWaitInterceptor extends 
MethodFilterInterceptor {
 
     private static final long serialVersionUID = -2754639196749652512L;
 
-    private static final Logger LOG = 
LoggerFactory.getLogger(ExecuteAndWaitInterceptor.class);
+    private static final Logger LOG = 
LogManager.getLogger(ExecuteAndWaitInterceptor.class);
 
     public static final String KEY = "__execWait";
     public static final String WAIT = "wait";

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/interceptor/FileUploadInterceptor.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/struts2/interceptor/FileUploadInterceptor.java 
b/core/src/main/java/org/apache/struts2/interceptor/FileUploadInterceptor.java
index 78970a0..109f11a 100644
--- 
a/core/src/main/java/org/apache/struts2/interceptor/FileUploadInterceptor.java
+++ 
b/core/src/main/java/org/apache/struts2/interceptor/FileUploadInterceptor.java
@@ -32,8 +32,8 @@ import com.opensymphony.xwork2.inject.Container;
 import com.opensymphony.xwork2.inject.Inject;
 import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
 import com.opensymphony.xwork2.util.TextParseUtil;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 import org.apache.struts2.ServletActionContext;
 import org.apache.struts2.dispatcher.multipart.MultiPartRequestWrapper;
 import org.apache.struts2.util.ContentTypeMatcher;
@@ -189,7 +189,7 @@ public class FileUploadInterceptor extends 
AbstractInterceptor {
 
     private static final long serialVersionUID = -4764627478894962478L;
 
-    protected static final Logger LOG = 
LoggerFactory.getLogger(FileUploadInterceptor.class);
+    protected static final Logger LOG = 
LogManager.getLogger(FileUploadInterceptor.class);
 
     protected Long maximumSize;
     protected Set<String> allowedTypesSet = Collections.emptySet();

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/interceptor/MessageStoreInterceptor.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/struts2/interceptor/MessageStoreInterceptor.java
 
b/core/src/main/java/org/apache/struts2/interceptor/MessageStoreInterceptor.java
index b7509f0..3c358f5 100644
--- 
a/core/src/main/java/org/apache/struts2/interceptor/MessageStoreInterceptor.java
+++ 
b/core/src/main/java/org/apache/struts2/interceptor/MessageStoreInterceptor.java
@@ -32,8 +32,8 @@ import com.opensymphony.xwork2.ActionContext;
 import com.opensymphony.xwork2.ActionInvocation;
 import com.opensymphony.xwork2.ValidationAware;
 import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 
 /**
  * <!-- START SNIPPET: description -->
@@ -152,7 +152,7 @@ public class MessageStoreInterceptor extends 
AbstractInterceptor {
 
     private static final long serialVersionUID = 9161650888603380164L;
 
-    private static final Logger LOG = 
LoggerFactory.getLogger(MessageStoreInterceptor.class);
+    private static final Logger LOG = 
LogManager.getLogger(MessageStoreInterceptor.class);
 
     public static final String AUTOMATIC_MODE = "AUTOMATIC";
     public static final String STORE_MODE = "STORE";

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/interceptor/RolesInterceptor.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/struts2/interceptor/RolesInterceptor.java 
b/core/src/main/java/org/apache/struts2/interceptor/RolesInterceptor.java
index f55f1d2..d7a5150 100644
--- a/core/src/main/java/org/apache/struts2/interceptor/RolesInterceptor.java
+++ b/core/src/main/java/org/apache/struts2/interceptor/RolesInterceptor.java
@@ -23,8 +23,8 @@ package org.apache.struts2.interceptor;
 
 import com.opensymphony.xwork2.ActionInvocation;
 import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 import org.apache.struts2.ServletActionContext;
 
 import javax.servlet.http.HttpServletRequest;
@@ -88,7 +88,7 @@ import java.util.List;
  */
 public class RolesInterceptor extends AbstractInterceptor {
 
-    private static final Logger LOG = 
LoggerFactory.getLogger(RolesInterceptor.class);
+    private static final Logger LOG = 
LogManager.getLogger(RolesInterceptor.class);
 
     private boolean isProperlyConfigured = true;
     

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/interceptor/ScopeInterceptor.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/struts2/interceptor/ScopeInterceptor.java 
b/core/src/main/java/org/apache/struts2/interceptor/ScopeInterceptor.java
index 8863833..28cca41 100644
--- a/core/src/main/java/org/apache/struts2/interceptor/ScopeInterceptor.java
+++ b/core/src/main/java/org/apache/struts2/interceptor/ScopeInterceptor.java
@@ -35,8 +35,8 @@ import com.opensymphony.xwork2.ActionProxy;
 import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
 import com.opensymphony.xwork2.interceptor.PreResultListener;
 import com.opensymphony.xwork2.util.ValueStack;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 
 /**
  * <!-- START SNIPPET: description -->
@@ -144,7 +144,7 @@ public class ScopeInterceptor extends AbstractInterceptor 
implements PreResultLi
 
     private static final long serialVersionUID = 9120762699600054395L;
 
-    private static final Logger LOG = 
LoggerFactory.getLogger(ScopeInterceptor.class);
+    private static final Logger LOG = 
LogManager.getLogger(ScopeInterceptor.class);
 
     private String[] application = null;
     private String[] session = null;

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/interceptor/debugging/DebuggingInterceptor.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/struts2/interceptor/debugging/DebuggingInterceptor.java
 
b/core/src/main/java/org/apache/struts2/interceptor/debugging/DebuggingInterceptor.java
index 743a380..7ff8799 100644
--- 
a/core/src/main/java/org/apache/struts2/interceptor/debugging/DebuggingInterceptor.java
+++ 
b/core/src/main/java/org/apache/struts2/interceptor/debugging/DebuggingInterceptor.java
@@ -50,8 +50,8 @@ import com.opensymphony.xwork2.inject.Inject;
 import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
 import com.opensymphony.xwork2.interceptor.PreResultListener;
 import com.opensymphony.xwork2.util.ValueStack;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 import com.opensymphony.xwork2.util.reflection.ReflectionProvider;
 
 /**
@@ -93,7 +93,7 @@ public class DebuggingInterceptor extends AbstractInterceptor 
{
 
     private static final long serialVersionUID = -3097324155953078783L;
 
-    private final static Logger LOG = 
LoggerFactory.getLogger(DebuggingInterceptor.class);
+    private final static Logger LOG = 
LogManager.getLogger(DebuggingInterceptor.class);
 
     private String[] ignorePrefixes = new String[]{"org.apache.struts.",
             "com.opensymphony.xwork2.", "xwork."};

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/util/IteratorGenerator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/util/IteratorGenerator.java 
b/core/src/main/java/org/apache/struts2/util/IteratorGenerator.java
index a597d64..1d005c2 100644
--- a/core/src/main/java/org/apache/struts2/util/IteratorGenerator.java
+++ b/core/src/main/java/org/apache/struts2/util/IteratorGenerator.java
@@ -27,8 +27,8 @@ import java.util.List;
 import java.util.StringTokenizer;
 
 import com.opensymphony.xwork2.Action;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 
 
 /**
@@ -38,7 +38,7 @@ import com.opensymphony.xwork2.util.logging.LoggerFactory;
  */
 public class IteratorGenerator implements Iterator, Action {
 
-    private static final Logger LOG = 
LoggerFactory.getLogger(IteratorGenerator.class);
+    private static final Logger LOG = 
LogManager.getLogger(IteratorGenerator.class);
 
     List values;
     Object value;

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/util/SortIteratorFilter.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/util/SortIteratorFilter.java 
b/core/src/main/java/org/apache/struts2/util/SortIteratorFilter.java
index aef043d..f57b5e6 100644
--- a/core/src/main/java/org/apache/struts2/util/SortIteratorFilter.java
+++ b/core/src/main/java/org/apache/struts2/util/SortIteratorFilter.java
@@ -28,7 +28,7 @@ import java.util.Iterator;
 import java.util.List;
 
 import com.opensymphony.xwork2.Action;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.LogManager;
 
 
 /**
@@ -67,7 +67,7 @@ public class SortIteratorFilter extends IteratorFilterSupport 
implements Iterato
         } else {
             try {
                 if (!MakeIterator.isIterable(source)) {
-                    
LoggerFactory.getLogger(SortIteratorFilter.class.getName()).warn("Cannot create 
SortIterator for source " + source);
+                    
LogManager.getLogger(SortIteratorFilter.class.getName()).warn("Cannot create 
SortIterator for source " + source);
 
                     return ERROR;
                 }
@@ -86,7 +86,7 @@ public class SortIteratorFilter extends IteratorFilterSupport 
implements Iterato
 
                 return SUCCESS;
             } catch (Exception e) {
-                
LoggerFactory.getLogger(SortIteratorFilter.class.getName()).warn("Error 
creating sort iterator.", e);
+                
LogManager.getLogger(SortIteratorFilter.class.getName()).warn("Error creating 
sort iterator.", e);
 
                 return ERROR;
             }

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/util/StrutsUtil.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/util/StrutsUtil.java 
b/core/src/main/java/org/apache/struts2/util/StrutsUtil.java
index 38aa3f3..c0fcbde 100644
--- a/core/src/main/java/org/apache/struts2/util/StrutsUtil.java
+++ b/core/src/main/java/org/apache/struts2/util/StrutsUtil.java
@@ -27,8 +27,8 @@ import com.opensymphony.xwork2.inject.Container;
 import com.opensymphony.xwork2.util.ClassLoaderUtil;
 import com.opensymphony.xwork2.util.TextParseUtil;
 import com.opensymphony.xwork2.util.ValueStack;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 import org.apache.struts2.views.jsp.ui.OgnlTool;
 import org.apache.struts2.views.util.UrlHelper;
 
@@ -54,7 +54,7 @@ import java.util.Map;
  */
 public class StrutsUtil {
 
-    protected static final Logger LOG = 
LoggerFactory.getLogger(StrutsUtil.class);
+    protected static final Logger LOG = LogManager.getLogger(StrutsUtil.class);
 
     protected HttpServletRequest request;
     protected HttpServletResponse response;

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/util/SubsetIteratorFilter.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/struts2/util/SubsetIteratorFilter.java 
b/core/src/main/java/org/apache/struts2/util/SubsetIteratorFilter.java
index 3b8ac4a..cacdd1c 100644
--- a/core/src/main/java/org/apache/struts2/util/SubsetIteratorFilter.java
+++ b/core/src/main/java/org/apache/struts2/util/SubsetIteratorFilter.java
@@ -22,8 +22,8 @@
 package org.apache.struts2.util;
 
 import com.opensymphony.xwork2.Action;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 
 import java.util.ArrayList;
 import java.util.Iterator;
@@ -36,7 +36,7 @@ import java.util.List;
  */
 public class SubsetIteratorFilter extends IteratorFilterSupport implements 
Iterator, Action {
 
-    private static final Logger LOG = 
LoggerFactory.getLogger(SubsetIteratorFilter.class);
+    private static final Logger LOG = 
LogManager.getLogger(SubsetIteratorFilter.class);
 
     Iterator iterator;
     Object source;
@@ -69,7 +69,7 @@ public class SubsetIteratorFilter extends 
IteratorFilterSupport implements Itera
     // Action implementation -----------------------------------------
     public String execute() {
         if (source == null) {
-            
LoggerFactory.getLogger(SubsetIteratorFilter.class.getName()).warn("Source is 
null returning empty set.");
+            
LogManager.getLogger(SubsetIteratorFilter.class.getName()).warn("Source is null 
returning empty set.");
 
             return ERROR;
         }

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/util/TextProviderHelper.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/util/TextProviderHelper.java 
b/core/src/main/java/org/apache/struts2/util/TextProviderHelper.java
index 303adde..6449667 100644
--- a/core/src/main/java/org/apache/struts2/util/TextProviderHelper.java
+++ b/core/src/main/java/org/apache/struts2/util/TextProviderHelper.java
@@ -23,8 +23,8 @@ package org.apache.struts2.util;
 
 import com.opensymphony.xwork2.TextProvider;
 import com.opensymphony.xwork2.util.ValueStack;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 
 import java.util.Collections;
 import java.util.List;
@@ -34,7 +34,7 @@ import java.util.List;
  */
 public class TextProviderHelper {
 
-    private static final Logger LOG = 
LoggerFactory.getLogger(TextProviderHelper.class);
+    private static final Logger LOG = 
LogManager.getLogger(TextProviderHelper.class);
 
      /**
      * <p>Get a message from the first TextProvider encountered in the stack.

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/util/TokenHelper.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/util/TokenHelper.java 
b/core/src/main/java/org/apache/struts2/util/TokenHelper.java
index 2e103da..c19a3ba 100644
--- a/core/src/main/java/org/apache/struts2/util/TokenHelper.java
+++ b/core/src/main/java/org/apache/struts2/util/TokenHelper.java
@@ -23,8 +23,8 @@ package org.apache.struts2.util;
 
 import com.opensymphony.xwork2.ActionContext;
 import com.opensymphony.xwork2.util.LocalizedTextUtil;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 
 import java.math.BigInteger;
 import java.security.SecureRandom;
@@ -51,7 +51,7 @@ public class TokenHelper {
      * The name of the field which will hold the token name
      */
     public static final String TOKEN_NAME_FIELD = "struts.token.name";
-    private static final Logger LOG = 
LoggerFactory.getLogger(TokenHelper.class);
+    private static final Logger LOG = LogManager.getLogger(TokenHelper.class);
     private static final Random RANDOM = new SecureRandom();
 
 

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/util/fs/JBossFileManager.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/struts2/util/fs/JBossFileManager.java 
b/core/src/main/java/org/apache/struts2/util/fs/JBossFileManager.java
index b4a2b15..10881e9 100644
--- a/core/src/main/java/org/apache/struts2/util/fs/JBossFileManager.java
+++ b/core/src/main/java/org/apache/struts2/util/fs/JBossFileManager.java
@@ -4,8 +4,8 @@ import com.opensymphony.xwork2.util.fs.DefaultFileManager;
 import com.opensymphony.xwork2.util.fs.FileRevision;
 import com.opensymphony.xwork2.util.fs.JarEntryRevision;
 import com.opensymphony.xwork2.util.fs.Revision;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 
 import java.io.File;
 import java.io.IOException;
@@ -22,7 +22,7 @@ import java.util.List;
  */
 public class JBossFileManager extends DefaultFileManager {
 
-    private static final Logger LOG = 
LoggerFactory.getLogger(JBossFileManager.class);
+    private static final Logger LOG = 
LogManager.getLogger(JBossFileManager.class);
 
     private static final String JBOSS5_VFS = "vfs";
     private static final String JBOSS5_VFSZIP = "vfszip";

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerManager.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerManager.java 
b/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerManager.java
index a99235e..28b7a5f 100644
--- 
a/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerManager.java
+++ 
b/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerManager.java
@@ -27,8 +27,8 @@ import com.opensymphony.xwork2.inject.Container;
 import com.opensymphony.xwork2.inject.Inject;
 import com.opensymphony.xwork2.util.ClassLoaderUtil;
 import com.opensymphony.xwork2.util.ValueStack;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 import freemarker.cache.ClassTemplateLoader;
 import freemarker.cache.FileTemplateLoader;
 import freemarker.cache.MultiTemplateLoader;
@@ -158,7 +158,7 @@ public class FreemarkerManager {
 
     // end freemarker definitions...
 
-    private static final Logger LOG = 
LoggerFactory.getLogger(FreemarkerManager.class);
+    private static final Logger LOG = 
LogManager.getLogger(FreemarkerManager.class);
     public static final String CONFIG_SERVLET_CONTEXT_KEY = 
"freemarker.Configuration";
     public static final String KEY_EXCEPTION = "exception";
 

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerResult.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerResult.java 
b/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerResult.java
index 3ded53b..e5258e6 100644
--- 
a/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerResult.java
+++ 
b/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerResult.java
@@ -26,8 +26,8 @@ import com.opensymphony.xwork2.ActionInvocation;
 import com.opensymphony.xwork2.LocaleProvider;
 import com.opensymphony.xwork2.inject.Inject;
 import com.opensymphony.xwork2.util.ValueStack;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 import freemarker.template.Configuration;
 import freemarker.template.ObjectWrapper;
 import freemarker.template.Template;
@@ -104,7 +104,7 @@ public class FreemarkerResult extends StrutsResultSupport {
 
     private static final long serialVersionUID = -3778230771704661631L;
 
-    private static final Logger LOG = 
LoggerFactory.getLogger(FreemarkerResult.class);
+    private static final Logger LOG = 
LogManager.getLogger(FreemarkerResult.class);
 
     protected ActionInvocation invocation;
     protected Configuration configuration;

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/views/freemarker/tags/TagModel.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/struts2/views/freemarker/tags/TagModel.java 
b/core/src/main/java/org/apache/struts2/views/freemarker/tags/TagModel.java
index 3b3565c..bf1495b 100644
--- a/core/src/main/java/org/apache/struts2/views/freemarker/tags/TagModel.java
+++ b/core/src/main/java/org/apache/struts2/views/freemarker/tags/TagModel.java
@@ -24,8 +24,8 @@ package org.apache.struts2.views.freemarker.tags;
 import com.opensymphony.xwork2.ActionContext;
 import com.opensymphony.xwork2.inject.Container;
 import com.opensymphony.xwork2.util.ValueStack;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 import freemarker.ext.beans.BeansWrapper;
 import freemarker.template.SimpleNumber;
 import freemarker.template.SimpleSequence;
@@ -43,7 +43,7 @@ import java.util.Iterator;
 import java.util.Map;
 
 public abstract class TagModel implements TemplateTransformModel {
-    private static final Logger LOG = LoggerFactory.getLogger(TagModel.class);
+    private static final Logger LOG = LogManager.getLogger(TagModel.class);
 
     protected ValueStack stack;
     protected HttpServletRequest req;

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/views/jsp/BeanTag.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/views/jsp/BeanTag.java 
b/core/src/main/java/org/apache/struts2/views/jsp/BeanTag.java
index 5c21421..f630580 100644
--- a/core/src/main/java/org/apache/struts2/views/jsp/BeanTag.java
+++ b/core/src/main/java/org/apache/struts2/views/jsp/BeanTag.java
@@ -28,8 +28,8 @@ import org.apache.struts2.components.Bean;
 import org.apache.struts2.components.Component;
 
 import com.opensymphony.xwork2.util.ValueStack;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 
 
 /**
@@ -39,7 +39,7 @@ public class BeanTag extends ContextBeanTag {
 
     private static final long serialVersionUID = -3863152522071209267L;
 
-    protected static Logger LOG = LoggerFactory.getLogger(BeanTag.class);
+    protected static Logger LOG = LogManager.getLogger(BeanTag.class);
 
     protected String name;
 

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/views/jsp/iterator/IteratorGeneratorTag.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/struts2/views/jsp/iterator/IteratorGeneratorTag.java
 
b/core/src/main/java/org/apache/struts2/views/jsp/iterator/IteratorGeneratorTag.java
index 76371a9..81ac85c 100644
--- 
a/core/src/main/java/org/apache/struts2/views/jsp/iterator/IteratorGeneratorTag.java
+++ 
b/core/src/main/java/org/apache/struts2/views/jsp/iterator/IteratorGeneratorTag.java
@@ -29,8 +29,8 @@ import org.apache.struts2.views.annotations.StrutsTag;
 import org.apache.struts2.views.annotations.StrutsTagAttribute;
 import org.apache.struts2.views.jsp.StrutsBodyTagSupport;
 
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 
 
 /**
@@ -134,7 +134,7 @@ public class IteratorGeneratorTag extends 
StrutsBodyTagSupport {
 
     public static final String DEFAULT_SEPARATOR = ",";
 
-    private static final Logger LOG = 
LoggerFactory.getLogger(IteratorGeneratorTag.class);
+    private static final Logger LOG = 
LogManager.getLogger(IteratorGeneratorTag.class);
 
     String countAttr;
     String separatorAttr;

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/views/jsp/iterator/SubsetIteratorTag.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/struts2/views/jsp/iterator/SubsetIteratorTag.java
 
b/core/src/main/java/org/apache/struts2/views/jsp/iterator/SubsetIteratorTag.java
index 196b8b0..0149f59 100644
--- 
a/core/src/main/java/org/apache/struts2/views/jsp/iterator/SubsetIteratorTag.java
+++ 
b/core/src/main/java/org/apache/struts2/views/jsp/iterator/SubsetIteratorTag.java
@@ -29,8 +29,8 @@ import org.apache.struts2.views.annotations.StrutsTag;
 import org.apache.struts2.views.annotations.StrutsTagAttribute;
 import org.apache.struts2.views.jsp.StrutsBodyTagSupport;
 
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 
 
 /**
@@ -155,7 +155,7 @@ public class SubsetIteratorTag extends StrutsBodyTagSupport 
{
 
     private static final long serialVersionUID = -6252696081713080102L;
 
-    private static final Logger LOG = 
LoggerFactory.getLogger(SubsetIteratorTag.class);
+    private static final Logger LOG = 
LogManager.getLogger(SubsetIteratorTag.class);
 
     String countAttr;
     String sourceAttr;

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/views/jsp/ui/AbstractUITagBeanInfo.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/struts2/views/jsp/ui/AbstractUITagBeanInfo.java 
b/core/src/main/java/org/apache/struts2/views/jsp/ui/AbstractUITagBeanInfo.java
index 21c5d00..aa6379d 100644
--- 
a/core/src/main/java/org/apache/struts2/views/jsp/ui/AbstractUITagBeanInfo.java
+++ 
b/core/src/main/java/org/apache/struts2/views/jsp/ui/AbstractUITagBeanInfo.java
@@ -21,8 +21,8 @@
 
 package org.apache.struts2.views.jsp.ui;
 
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 
 import java.beans.PropertyDescriptor;
 import java.beans.SimpleBeanInfo;
@@ -37,7 +37,7 @@ import java.util.List;
  */
 public class AbstractUITagBeanInfo extends SimpleBeanInfo {
 
-    private static final Logger LOG = 
LoggerFactory.getLogger(AbstractUITagBeanInfo.class);
+    private static final Logger LOG = 
LogManager.getLogger(AbstractUITagBeanInfo.class);
 
     @Override
     public PropertyDescriptor[] getPropertyDescriptors() {

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/views/util/DefaultUrlHelper.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/struts2/views/util/DefaultUrlHelper.java 
b/core/src/main/java/org/apache/struts2/views/util/DefaultUrlHelper.java
index 460c138..111f70b 100644
--- a/core/src/main/java/org/apache/struts2/views/util/DefaultUrlHelper.java
+++ b/core/src/main/java/org/apache/struts2/views/util/DefaultUrlHelper.java
@@ -22,8 +22,8 @@
 package org.apache.struts2.views.util;
 
 import com.opensymphony.xwork2.inject.Inject;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 import org.apache.commons.lang3.StringEscapeUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.struts2.StrutsConstants;
@@ -45,7 +45,7 @@ import java.util.Map;
  */
 public class DefaultUrlHelper implements UrlHelper {
 
-    private static final Logger LOG = 
LoggerFactory.getLogger(DefaultUrlHelper.class);
+    private static final Logger LOG = 
LogManager.getLogger(DefaultUrlHelper.class);
 
     public static final String HTTP_PROTOCOL = "http";
     public static final String HTTPS_PROTOCOL = "https";

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/views/velocity/VelocityManager.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/struts2/views/velocity/VelocityManager.java 
b/core/src/main/java/org/apache/struts2/views/velocity/VelocityManager.java
index e026a2c..51aff4a 100644
--- a/core/src/main/java/org/apache/struts2/views/velocity/VelocityManager.java
+++ b/core/src/main/java/org/apache/struts2/views/velocity/VelocityManager.java
@@ -25,8 +25,8 @@ import com.opensymphony.xwork2.ObjectFactory;
 import com.opensymphony.xwork2.inject.Container;
 import com.opensymphony.xwork2.inject.Inject;
 import com.opensymphony.xwork2.util.ValueStack;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.struts2.ServletActionContext;
 import org.apache.struts2.StrutsConstants;
@@ -66,7 +66,7 @@ import java.util.StringTokenizer;
  *
  */
 public class VelocityManager {
-    private static final Logger LOG = 
LoggerFactory.getLogger(VelocityManager.class);
+    private static final Logger LOG = 
LogManager.getLogger(VelocityManager.class);
     public static final String STRUTS = "struts";
     private ObjectFactory objectFactory;
 

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/views/xslt/AbstractAdapterNode.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/struts2/views/xslt/AbstractAdapterNode.java 
b/core/src/main/java/org/apache/struts2/views/xslt/AbstractAdapterNode.java
index 34b2446..5d1e567 100644
--- a/core/src/main/java/org/apache/struts2/views/xslt/AbstractAdapterNode.java
+++ b/core/src/main/java/org/apache/struts2/views/xslt/AbstractAdapterNode.java
@@ -33,8 +33,8 @@ import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 import org.w3c.dom.UserDataHandler;
 
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 
 /**
  * AbstractAdapterNode is the base for childAdapters that expose a read-only 
view
@@ -82,7 +82,7 @@ public abstract class AbstractAdapterNode implements 
AdapterNode {
             };
 
     private List<Node> childAdapters;
-    private Logger log = LoggerFactory.getLogger(this.getClass());
+    private Logger log = LogManager.getLogger(this.getClass());
 
     // The domain object that we are adapting
     private Object propertyValue;
@@ -92,8 +92,8 @@ public abstract class AbstractAdapterNode implements 
AdapterNode {
 
 
     public AbstractAdapterNode() {
-        if (LoggerFactory.getLogger(getClass()).isDebugEnabled()) {
-            LoggerFactory.getLogger(getClass()).debug("Creating " + this);
+        if (LogManager.getLogger(getClass()).isDebugEnabled()) {
+            LogManager.getLogger(getClass()).debug("Creating " + this);
         }
     }
 

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/views/xslt/ArrayAdapter.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/views/xslt/ArrayAdapter.java 
b/core/src/main/java/org/apache/struts2/views/xslt/ArrayAdapter.java
index 4804650..75ad827 100644
--- a/core/src/main/java/org/apache/struts2/views/xslt/ArrayAdapter.java
+++ b/core/src/main/java/org/apache/struts2/views/xslt/ArrayAdapter.java
@@ -26,15 +26,15 @@ import java.util.List;
 
 import org.w3c.dom.Node;
 
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 
 
 /**
  */
 public class ArrayAdapter extends AbstractAdapterElement {
 
-    private Logger log = LoggerFactory.getLogger(this.getClass());
+    private Logger log = LogManager.getLogger(this.getClass());
 
     public ArrayAdapter() {
     }

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/views/xslt/BeanAdapter.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/views/xslt/BeanAdapter.java 
b/core/src/main/java/org/apache/struts2/views/xslt/BeanAdapter.java
index 043fc75..0b242e3 100644
--- a/core/src/main/java/org/apache/struts2/views/xslt/BeanAdapter.java
+++ b/core/src/main/java/org/apache/struts2/views/xslt/BeanAdapter.java
@@ -21,8 +21,8 @@
 
 package org.apache.struts2.views.xslt;
 
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 import org.apache.struts2.StrutsException;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
@@ -65,7 +65,7 @@ public class BeanAdapter extends AbstractAdapterElement {
 
     //~ Instance fields 
////////////////////////////////////////////////////////
 
-    private Logger log = LoggerFactory.getLogger(this.getClass());
+    private Logger log = LogManager.getLogger(this.getClass());
 
     //~ Constructors 
///////////////////////////////////////////////////////////
 

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/views/xslt/CollectionAdapter.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/struts2/views/xslt/CollectionAdapter.java 
b/core/src/main/java/org/apache/struts2/views/xslt/CollectionAdapter.java
index e7f2727..a720ccb 100644
--- a/core/src/main/java/org/apache/struts2/views/xslt/CollectionAdapter.java
+++ b/core/src/main/java/org/apache/struts2/views/xslt/CollectionAdapter.java
@@ -27,15 +27,15 @@ import java.util.List;
 
 import org.w3c.dom.Node;
 
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 
 
 /**
  */
 public class CollectionAdapter extends AbstractAdapterElement {
 
-    private Logger log = LoggerFactory.getLogger(this.getClass());
+    private Logger log = LogManager.getLogger(this.getClass());
 
     public CollectionAdapter() { }
 

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/views/xslt/ProxyElementAdapter.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/struts2/views/xslt/ProxyElementAdapter.java 
b/core/src/main/java/org/apache/struts2/views/xslt/ProxyElementAdapter.java
index 18c6db3..5c3389a 100644
--- a/core/src/main/java/org/apache/struts2/views/xslt/ProxyElementAdapter.java
+++ b/core/src/main/java/org/apache/struts2/views/xslt/ProxyElementAdapter.java
@@ -31,8 +31,8 @@ import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 import org.w3c.dom.TypeInfo;
 
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 
 /**
  * ProxyElementAdapter is a pass-through adapter for objects which already
@@ -45,7 +45,7 @@ import com.opensymphony.xwork2.util.logging.LoggerFactory;
  */
 public class ProxyElementAdapter extends ProxyNodeAdapter implements Element {
 
-    private Logger log = LoggerFactory.getLogger(this.getClass());
+    private Logger log = LogManager.getLogger(this.getClass());
 
     public ProxyElementAdapter(AdapterFactory factory, AdapterNode parent, 
Element value) {
         super(factory, parent, value);

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/views/xslt/ProxyNodeAdapter.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/struts2/views/xslt/ProxyNodeAdapter.java 
b/core/src/main/java/org/apache/struts2/views/xslt/ProxyNodeAdapter.java
index 72a1388..26b23ee 100644
--- a/core/src/main/java/org/apache/struts2/views/xslt/ProxyNodeAdapter.java
+++ b/core/src/main/java/org/apache/struts2/views/xslt/ProxyNodeAdapter.java
@@ -25,8 +25,8 @@ import org.w3c.dom.DOMException;
 import org.w3c.dom.NamedNodeMap;
 import org.w3c.dom.Node;
 
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 
 /**
  * ProxyNodeAdapter is a read-only delegating adapter for objects which already
@@ -36,7 +36,7 @@ import com.opensymphony.xwork2.util.logging.LoggerFactory;
  */
 public abstract class ProxyNodeAdapter extends AbstractAdapterNode {
 
-    private Logger log = LoggerFactory.getLogger(this.getClass());
+    private Logger log = LogManager.getLogger(this.getClass());
 
     public ProxyNodeAdapter(AdapterFactory factory, AdapterNode parent, Node 
value) {
         setContext(factory, parent, "document"/*propname unused*/, value);

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/views/xslt/ServletURIResolver.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/struts2/views/xslt/ServletURIResolver.java 
b/core/src/main/java/org/apache/struts2/views/xslt/ServletURIResolver.java
index 8b4d39c..0496c4d 100644
--- a/core/src/main/java/org/apache/struts2/views/xslt/ServletURIResolver.java
+++ b/core/src/main/java/org/apache/struts2/views/xslt/ServletURIResolver.java
@@ -29,8 +29,8 @@ import javax.xml.transform.TransformerException;
 import javax.xml.transform.URIResolver;
 import javax.xml.transform.stream.StreamSource;
 
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 
 
 /**
@@ -42,7 +42,7 @@ import com.opensymphony.xwork2.util.logging.LoggerFactory;
  */
 public class ServletURIResolver implements URIResolver {
 
-    private Logger log = LoggerFactory.getLogger(getClass());
+    private Logger log = LogManager.getLogger(getClass());
     static final String PROTOCOL = "response:";
 
     private ServletContext sc;

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/views/xslt/SimpleNodeList.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/struts2/views/xslt/SimpleNodeList.java 
b/core/src/main/java/org/apache/struts2/views/xslt/SimpleNodeList.java
index 1a21915..a1c2092 100644
--- a/core/src/main/java/org/apache/struts2/views/xslt/SimpleNodeList.java
+++ b/core/src/main/java/org/apache/struts2/views/xslt/SimpleNodeList.java
@@ -26,11 +26,11 @@ import java.util.List;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 
 public class SimpleNodeList implements NodeList {
-    private Logger log = LoggerFactory.getLogger(SimpleNodeList.class);
+    private Logger log = LogManager.getLogger(SimpleNodeList.class);
 
     private List<Node> nodes;
 

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/views/xslt/StringAdapter.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/struts2/views/xslt/StringAdapter.java 
b/core/src/main/java/org/apache/struts2/views/xslt/StringAdapter.java
index b7c1dad..d4509d1 100644
--- a/core/src/main/java/org/apache/struts2/views/xslt/StringAdapter.java
+++ b/core/src/main/java/org/apache/struts2/views/xslt/StringAdapter.java
@@ -29,8 +29,8 @@ import org.w3c.dom.Node;
 import org.xml.sax.InputSource;
 
 import com.opensymphony.xwork2.util.DomHelper;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 
 /**
  * StringAdapter adapts a Java String value to a DOM Element with the specified
@@ -47,7 +47,7 @@ import com.opensymphony.xwork2.util.logging.LoggerFactory;
  */
 public class StringAdapter extends AbstractAdapterElement {
 
-    private Logger log = LoggerFactory.getLogger(this.getClass());
+    private Logger log = LogManager.getLogger(this.getClass());
     boolean parseStringAsXML;
 
     public StringAdapter() {

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/views/xslt/XSLTResult.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/views/xslt/XSLTResult.java 
b/core/src/main/java/org/apache/struts2/views/xslt/XSLTResult.java
index 7c3dd77..d0225e8 100644
--- a/core/src/main/java/org/apache/struts2/views/xslt/XSLTResult.java
+++ b/core/src/main/java/org/apache/struts2/views/xslt/XSLTResult.java
@@ -27,8 +27,8 @@ import com.opensymphony.xwork2.Result;
 import com.opensymphony.xwork2.inject.Inject;
 import com.opensymphony.xwork2.util.TextParseUtil;
 import com.opensymphony.xwork2.util.ValueStack;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 import org.apache.struts2.ServletActionContext;
 import org.apache.struts2.StrutsConstants;
 import org.apache.struts2.StrutsException;
@@ -210,7 +210,7 @@ public class XSLTResult implements Result {
     private static final long serialVersionUID = 6424691441777176763L;
 
     /** Log instance for this result. */
-    private static final Logger LOG = 
LoggerFactory.getLogger(XSLTResult.class);
+    private static final Logger LOG = LogManager.getLogger(XSLTResult.class);
 
     /** 'stylesheetLocation' parameter.  Points to the xsl. */
     public static final String DEFAULT_PARAM = "stylesheetLocation";

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/test/java/org/apache/struts2/ClassInstantiationTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/struts2/ClassInstantiationTest.java 
b/core/src/test/java/org/apache/struts2/ClassInstantiationTest.java
index 4a34076..c97a90c 100644
--- a/core/src/test/java/org/apache/struts2/ClassInstantiationTest.java
+++ b/core/src/test/java/org/apache/struts2/ClassInstantiationTest.java
@@ -1,7 +1,5 @@
 package org.apache.struts2;
 
-import com.opensymphony.xwork2.inject.Container;
-import org.apache.struts2.dispatcher.Dispatcher;
 import org.apache.struts2.dispatcher.mapper.ActionMapper;
 
 import java.util.HashMap;

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/test/java/org/apache/struts2/ExecutionCountTestAction.java
----------------------------------------------------------------------
diff --git 
a/core/src/test/java/org/apache/struts2/ExecutionCountTestAction.java 
b/core/src/test/java/org/apache/struts2/ExecutionCountTestAction.java
index 88b32e6..31d048a 100644
--- a/core/src/test/java/org/apache/struts2/ExecutionCountTestAction.java
+++ b/core/src/test/java/org/apache/struts2/ExecutionCountTestAction.java
@@ -22,8 +22,8 @@
 package org.apache.struts2;
 
 import com.opensymphony.xwork2.ActionSupport;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 
 
 /**
@@ -34,7 +34,7 @@ public class ExecutionCountTestAction extends ActionSupport {
     private static final long serialVersionUID = -2954211394678430609L;
 
 
-    private static final Logger LOG = 
LoggerFactory.getLogger(ExecutionCountTestAction.class);
+    private static final Logger LOG = 
LogManager.getLogger(ExecutionCountTestAction.class);
 
 
     private int executionCount = 0;

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/test/java/org/apache/struts2/ServletActionContextTest.java
----------------------------------------------------------------------
diff --git 
a/core/src/test/java/org/apache/struts2/ServletActionContextTest.java 
b/core/src/test/java/org/apache/struts2/ServletActionContextTest.java
index bd904ee..f29b2e9 100644
--- a/core/src/test/java/org/apache/struts2/ServletActionContextTest.java
+++ b/core/src/test/java/org/apache/struts2/ServletActionContextTest.java
@@ -21,18 +21,16 @@
 
 package org.apache.struts2;
 
-import java.util.HashMap;
-import java.util.Map;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import junit.framework.TestCase;
-
 import com.mockobjects.servlet.MockHttpServletRequest;
 import com.mockobjects.servlet.MockHttpServletResponse;
 import com.mockobjects.servlet.MockServletContext;
 import com.opensymphony.xwork2.ActionContext;
+import junit.framework.TestCase;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.HashMap;
+import java.util.Map;
 
 
 /**

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/test/java/org/apache/struts2/StrutsInternalTestCase.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/struts2/StrutsInternalTestCase.java 
b/core/src/test/java/org/apache/struts2/StrutsInternalTestCase.java
index 6816481..81f575d 100644
--- a/core/src/test/java/org/apache/struts2/StrutsInternalTestCase.java
+++ b/core/src/test/java/org/apache/struts2/StrutsInternalTestCase.java
@@ -22,7 +22,6 @@
 package org.apache.struts2;
 
 import com.opensymphony.xwork2.XWorkTestCase;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
 import com.opensymphony.xwork2.util.logging.jdk.JdkLoggerFactory;
 import org.apache.struts2.dispatcher.Dispatcher;
 import org.apache.struts2.util.StrutsTestCaseHelper;
@@ -32,11 +31,7 @@ import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.Map;
-import java.util.logging.ConsoleHandler;
-import java.util.logging.Formatter;
-import java.util.logging.Level;
-import java.util.logging.LogRecord;
-import java.util.logging.Logger;
+import java.util.logging.*;
 
 /**
  * Base test case for JUnit testing Struts.

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/test/java/org/apache/struts2/TestAction.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/struts2/TestAction.java 
b/core/src/test/java/org/apache/struts2/TestAction.java
index a95b37a..dde13e5 100644
--- a/core/src/test/java/org/apache/struts2/TestAction.java
+++ b/core/src/test/java/org/apache/struts2/TestAction.java
@@ -26,11 +26,7 @@ import com.opensymphony.xwork2.ActionSupport;
 import com.opensymphony.xwork2.util.ValueStack;
 import org.apache.struts2.views.jsp.ui.User;
 
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 
 /**

Reply via email to