From 093532edc2b3a6d0421e44f93ba4b7aefbd1fac3 Mon Sep 17 00:00:00 2001 From: Johannes Geppert Date: Sat, 18 Apr 2015 21:15:48 +0200 Subject: [PATCH] WW-4492 Add support for Log4J2 as a struts and xwork logging backend - Use new log4j2 in blank and rest showcase app - Migrate to newer jetty plugin version --- apps/blank/pom.xml | 18 ++++- .../blank/src/main/resources/log4j.properties | 26 ------- apps/blank/src/main/resources/log4j2.xml | 15 ++++ apps/mailreader/pom.xml | 2 +- apps/rest-showcase/pom.xml | 32 ++++----- .../java/org/demo/rest/example/Order.java | 68 ++++++++++--------- .../demo/rest/example/OrdersController.java | 8 ++- .../src/main/resources/log4j.properties | 26 ------- .../src/main/resources/log4j2.xml | 16 +++++ apps/showcase/pom.xml | 2 +- 10 files changed, 103 insertions(+), 110 deletions(-) delete mode 100644 apps/blank/src/main/resources/log4j.properties create mode 100644 apps/blank/src/main/resources/log4j2.xml delete mode 100644 apps/rest-showcase/src/main/resources/log4j.properties create mode 100644 apps/rest-showcase/src/main/resources/log4j2.xml diff --git a/apps/blank/pom.xml b/apps/blank/pom.xml index 979f077f2..c105dd887 100644 --- a/apps/blank/pom.xml +++ b/apps/blank/pom.xml @@ -48,8 +48,14 @@ - log4j - log4j + org.apache.logging.log4j + log4j-api + 2.2 + + + org.apache.logging.log4j + log4j-core + 2.2 @@ -64,7 +70,7 @@ org.mortbay.jetty jetty-maven-plugin - 8.1.7.v20120910 + 8.1.16.v20140903 CTRL+C 8999 @@ -72,6 +78,12 @@ src/main/webapp/WEB-INF/web.xml + + + xwork.loggerFactory + com.opensymphony.xwork2.util.logging.log4j2.Log4j2LoggerFactory + + diff --git a/apps/blank/src/main/resources/log4j.properties b/apps/blank/src/main/resources/log4j.properties deleted file mode 100644 index 3c5af7cd6..000000000 --- a/apps/blank/src/main/resources/log4j.properties +++ /dev/null @@ -1,26 +0,0 @@ -# -# Log4J Settings for log4j 1.2.x (via jakarta-commons-logging) -# -# The five logging levels used by Log are (in order): -# -# 1. DEBUG (the least serious) -# 2. INFO -# 3. WARN -# 4. ERROR -# 5. FATAL (the most serious) - - -# Set root logger level to WARN and append to stdout -log4j.rootLogger=INFO, stdout -log4j.appender.stdout=org.apache.log4j.ConsoleAppender -log4j.appender.stdout.Target=System.out -log4j.appender.stdout.layout=org.apache.log4j.PatternLayout - -# Pattern to output the caller's file name and line number. -log4j.appender.stdout.layout.ConversionPattern=%d %5p (%c:%L) - %m%n - -# Print only messages of level ERROR or above in the package noModule. -log4j.logger.noModule=FATAL - -log4j.logger.com.opensymphony.xwork2=DEBUG -log4j.logger.org.apache.struts2=DEBUG diff --git a/apps/blank/src/main/resources/log4j2.xml b/apps/blank/src/main/resources/log4j2.xml new file mode 100644 index 000000000..aee8b3be6 --- /dev/null +++ b/apps/blank/src/main/resources/log4j2.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/apps/mailreader/pom.xml b/apps/mailreader/pom.xml index 5d3881186..022c4efef 100644 --- a/apps/mailreader/pom.xml +++ b/apps/mailreader/pom.xml @@ -63,7 +63,7 @@ org.mortbay.jetty jetty-maven-plugin - 8.1.7.v20120910 + 8.1.16.v20140903 CTRL+C 8999 diff --git a/apps/rest-showcase/pom.xml b/apps/rest-showcase/pom.xml index 8919e6303..d3679a1a9 100644 --- a/apps/rest-showcase/pom.xml +++ b/apps/rest-showcase/pom.xml @@ -48,10 +48,18 @@ org.apache.struts struts2-config-browser-plugin + - log4j - log4j + org.apache.logging.log4j + log4j-api + 2.2 + + org.apache.logging.log4j + log4j-core + 2.2 + + junit junit @@ -96,22 +104,17 @@ 1.5 - org.mortbay.jetty jetty-maven-plugin - 8.1.7.v20120910 + 8.1.16.v20140903 CTRL+C 8999 - log4j.configuration - file:${basedir}/src/main/resources/log4j.properties - - - slf4j - false + xwork.loggerFactory + com.opensymphony.xwork2.util.logging.log4j2.Log4j2LoggerFactory 10 @@ -121,16 +124,7 @@ ${basedir}/src/main/webapp/WEB-INF/web.xml - - - log4j - log4j - 1.2.17 - - - - maven-surefire-plugin diff --git a/apps/rest-showcase/src/main/java/org/demo/rest/example/Order.java b/apps/rest-showcase/src/main/java/org/demo/rest/example/Order.java index cc9a66410..2c5e3f822 100644 --- a/apps/rest-showcase/src/main/java/org/demo/rest/example/Order.java +++ b/apps/rest-showcase/src/main/java/org/demo/rest/example/Order.java @@ -1,5 +1,9 @@ package org.demo.rest.example; +import org.apache.commons.lang3.builder.EqualsBuilder; +import org.apache.commons.lang3.builder.HashCodeBuilder; +import org.apache.commons.lang3.builder.ToStringBuilder; + public class Order { String id; String clientName; @@ -33,41 +37,39 @@ public class Order { } @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + amount; - result = prime * result - + ((clientName == null) ? 0 : clientName.hashCode()); - result = prime * result + ((id == null) ? 0 : id.hashCode()); - return result; + public boolean equals(Object obj) { + if (obj == null) { + return false; + } + if (obj == this) { + return true; + } + if (obj.getClass() != getClass()) { + return false; + } + Order rhs = (Order) obj; + return new EqualsBuilder() + .append(this.id, rhs.id) + .append(this.clientName, rhs.clientName) + .append(this.amount, rhs.amount) + .isEquals(); } @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - final Order other = (Order) obj; - if (amount != other.amount) - return false; - if (clientName == null) { - if (other.clientName != null) - return false; - } else if (!clientName.equals(other.clientName)) - return false; - if (id == null) { - if (other.id != null) - return false; - } else if (!id.equals(other.id)) - return false; - return true; + public int hashCode() { + return new HashCodeBuilder() + .append(id) + .append(clientName) + .append(amount) + .toHashCode(); + } + + @Override + public String toString() { + return new ToStringBuilder(this) + .append("id", id) + .append("clientName", clientName) + .append("amount", amount) + .toString(); } - - - - } diff --git a/apps/rest-showcase/src/main/java/org/demo/rest/example/OrdersController.java b/apps/rest-showcase/src/main/java/org/demo/rest/example/OrdersController.java index 07f0cd10b..8ccad7e7a 100644 --- a/apps/rest-showcase/src/main/java/org/demo/rest/example/OrdersController.java +++ b/apps/rest-showcase/src/main/java/org/demo/rest/example/OrdersController.java @@ -2,6 +2,8 @@ package org.demo.rest.example; import java.util.Collection; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.apache.struts2.rest.DefaultHttpHeaders; import org.apache.struts2.rest.HttpHeaders; import org.apache.struts2.convention.annotation.Results; @@ -15,7 +17,9 @@ import com.opensymphony.xwork2.ValidationAwareSupport; @Result(name="success", type="redirectAction", params = {"actionName" , "orders"}) }) public class OrdersController extends ValidationAwareSupport implements ModelDriven, Validateable{ - + + private static final Logger log = LogManager.getLogger(OrdersController.class); + private Order model = new Order(); private String id; private Collection list; @@ -51,6 +55,7 @@ public class OrdersController extends ValidationAwareSupport implements ModelDri // DELETE /orders/1 public String destroy() { + log.debug("Delete order with id: {}", id); ordersService.remove(id); addActionMessage("Order removed successfully"); return "success"; @@ -58,6 +63,7 @@ public class OrdersController extends ValidationAwareSupport implements ModelDri // POST /orders public HttpHeaders create() { + log.debug("Create new order {}", model); ordersService.save(model); addActionMessage("New order created successfully"); return new DefaultHttpHeaders("success") diff --git a/apps/rest-showcase/src/main/resources/log4j.properties b/apps/rest-showcase/src/main/resources/log4j.properties deleted file mode 100644 index 3c5af7cd6..000000000 --- a/apps/rest-showcase/src/main/resources/log4j.properties +++ /dev/null @@ -1,26 +0,0 @@ -# -# Log4J Settings for log4j 1.2.x (via jakarta-commons-logging) -# -# The five logging levels used by Log are (in order): -# -# 1. DEBUG (the least serious) -# 2. INFO -# 3. WARN -# 4. ERROR -# 5. FATAL (the most serious) - - -# Set root logger level to WARN and append to stdout -log4j.rootLogger=INFO, stdout -log4j.appender.stdout=org.apache.log4j.ConsoleAppender -log4j.appender.stdout.Target=System.out -log4j.appender.stdout.layout=org.apache.log4j.PatternLayout - -# Pattern to output the caller's file name and line number. -log4j.appender.stdout.layout.ConversionPattern=%d %5p (%c:%L) - %m%n - -# Print only messages of level ERROR or above in the package noModule. -log4j.logger.noModule=FATAL - -log4j.logger.com.opensymphony.xwork2=DEBUG -log4j.logger.org.apache.struts2=DEBUG diff --git a/apps/rest-showcase/src/main/resources/log4j2.xml b/apps/rest-showcase/src/main/resources/log4j2.xml new file mode 100644 index 000000000..33a843219 --- /dev/null +++ b/apps/rest-showcase/src/main/resources/log4j2.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/apps/showcase/pom.xml b/apps/showcase/pom.xml index f7aa11b6f..f5bd3a176 100644 --- a/apps/showcase/pom.xml +++ b/apps/showcase/pom.xml @@ -184,7 +184,7 @@ org.mortbay.jetty jetty-maven-plugin - 8.1.7.v20120910 + 8.1.16.v20140903 CTRL+C 8999