This is an automated email from the ASF dual-hosted git repository.
adelbene pushed a commit to branch wicket-9.x
in repository https://gitbox.apache.org/repos/asf/wicket.git
The following commit(s) were added to refs/heads/wicket-9.x by this push:
new 5559722dd7 Merge pull request #524 from astange1/requestLogger
5559722dd7 is described below
commit 5559722dd7a89db4347cbfe5131969a42194bdf2
Author: Andrea Del Bene <[email protected]>
AuthorDate: Sat Sep 3 15:40:15 2022 +0200
Merge pull request #524 from astange1/requestLogger
The http RequestLogger is very expensive.
---
.../protocol/http/AbstractRequestLogger.java | 39 +++++-----------------
.../apache/wicket/protocol/http/RequestLogger.java | 11 +++---
2 files changed, 13 insertions(+), 37 deletions(-)
diff --git
a/wicket-core/src/main/java/org/apache/wicket/protocol/http/AbstractRequestLogger.java
b/wicket-core/src/main/java/org/apache/wicket/protocol/http/AbstractRequestLogger.java
index 02e42fdbaa..d11f57b393 100644
---
a/wicket-core/src/main/java/org/apache/wicket/protocol/http/AbstractRequestLogger.java
+++
b/wicket-core/src/main/java/org/apache/wicket/protocol/http/AbstractRequestLogger.java
@@ -17,12 +17,14 @@
package org.apache.wicket.protocol.http;
import static java.lang.System.arraycopy;
+
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.time.format.DateTimeFormatter;
import java.util.Arrays;
-import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.Map;
-import java.util.TimeZone;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicInteger;
import org.apache.wicket.Application;
@@ -51,6 +53,9 @@ public abstract class AbstractRequestLogger implements
IRequestLogger
{
private static final Logger LOG =
LoggerFactory.getLogger(AbstractRequestLogger.class);
+ private static final ZoneId ZID = ZoneId.of("GMT");
+ private static final DateTimeFormatter FORMATTER =
DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss,SSS");
+
/**
* Key for storing request data in the request cycle's meta data.
*/
@@ -494,34 +499,8 @@ public abstract class AbstractRequestLogger implements
IRequestLogger
{
Args.notNull(date, "date");
- final Calendar cal =
Calendar.getInstance(TimeZone.getTimeZone("GMT"));
- final StringBuilder buf = new StringBuilder(32);
-
- cal.setTimeInMillis(date.getTime());
-
- int year = cal.get(Calendar.YEAR);
- int month = cal.get(Calendar.MONTH) + 1;
- int day = cal.get(Calendar.DAY_OF_MONTH);
- int hours = cal.get(Calendar.HOUR_OF_DAY);
- int minutes = cal.get(Calendar.MINUTE);
- int seconds = cal.get(Calendar.SECOND);
- int millis = cal.get(Calendar.MILLISECOND);
-
- buf.append(year);
- buf.append('-');
- buf.append(String.format("%02d", month));
- buf.append('-');
- buf.append(String.format("%02d", day));
- buf.append(' ');
- buf.append(String.format("%02d", hours));
- buf.append(':');
- buf.append(String.format("%02d", minutes));
- buf.append(':');
- buf.append(String.format("%02d", seconds));
- buf.append(',');
- buf.append(String.format("%03d", millis));
-
- return buf.toString();
+ LocalDateTime ldt = LocalDateTime.ofInstant(date.toInstant(),
ZID);
+ return ldt.format(FORMATTER);
}
private int getRequestsWindowSize()
diff --git
a/wicket-core/src/main/java/org/apache/wicket/protocol/http/RequestLogger.java
b/wicket-core/src/main/java/org/apache/wicket/protocol/http/RequestLogger.java
index 864c162a64..06e7a8032e 100644
---
a/wicket-core/src/main/java/org/apache/wicket/protocol/http/RequestLogger.java
+++
b/wicket-core/src/main/java/org/apache/wicket/protocol/http/RequestLogger.java
@@ -19,7 +19,6 @@ package org.apache.wicket.protocol.http;
import org.apache.wicket.request.ILoggableRequestHandler;
import org.apache.wicket.request.IRequestHandler;
import org.apache.wicket.util.lang.Classes;
-import org.apache.wicket.util.string.AppendingStringBuffer;
import org.apache.wicket.util.string.Strings;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -59,7 +58,7 @@ public class RequestLogger extends AbstractRequestLogger
private String createRequestData(RequestData rd, SessionData sd)
{
- AppendingStringBuffer sb = new AppendingStringBuffer(150);
+ StringBuilder sb = new StringBuilder(768);
sb.append("startTime=\"");
sb.append(formatDate(rd.getStartDate()));
@@ -69,9 +68,9 @@ public class RequestLogger extends AbstractRequestLogger
sb.append(rd.getRequestedUrl());
sb.append('"');
sb.append(",event={");
- sb.append(getRequestHandlerString(rd.getEventTarget()));
+ appendRequestHandlerString(sb, rd.getEventTarget());
sb.append("},response={");
- sb.append(getRequestHandlerString(rd.getResponseTarget()));
+ appendRequestHandlerString(sb, rd.getResponseTarget());
sb.append("},sessionid=\"");
sb.append(rd.getSessionId());
sb.append('"');
@@ -110,9 +109,8 @@ public class RequestLogger extends AbstractRequestLogger
return sb.toString();
}
- private String getRequestHandlerString(IRequestHandler handler)
+ private void appendRequestHandlerString(StringBuilder sb,
IRequestHandler handler)
{
- AppendingStringBuffer sb = new AppendingStringBuffer(128);
if (handler != null)
{
Class<? extends IRequestHandler> handlerClass =
handler.getClass();
@@ -129,6 +127,5 @@ public class RequestLogger extends AbstractRequestLogger
{
sb.append("none");
}
- return sb.toString();
}
}