This is an automated email from the ASF dual-hosted git repository.
rjung pushed a commit to branch 8.5.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/8.5.x by this push:
new 87746e188d Switch from locally defined AccessLogElement to new
parametrized CharElement.
87746e188d is described below
commit 87746e188d380eead3171288e6d5ad4adfab4510
Author: Rainer Jung <[email protected]>
AuthorDate: Thu Apr 27 10:11:29 2023 +0200
Switch from locally defined AccessLogElement to new parametrized
CharElement.
It is more consistent with all other output
and eases backports.
---
.../apache/catalina/valves/JsonAccessLogValve.java | 34 ++++++++++++----------
1 file changed, 19 insertions(+), 15 deletions(-)
diff --git a/java/org/apache/catalina/valves/JsonAccessLogValve.java
b/java/org/apache/catalina/valves/JsonAccessLogValve.java
index c2564f9778..bd4fb91da4 100644
--- a/java/org/apache/catalina/valves/JsonAccessLogValve.java
+++ b/java/org/apache/catalina/valves/JsonAccessLogValve.java
@@ -93,15 +93,27 @@ public class JsonAccessLogValve extends AccessLogValve {
PATTERNS = Collections.unmodifiableMap(pattern2AttributeName);
}
+ /**
+ * write any char
+ */
+ protected static class CharElement implements AccessLogElement {
+ private final char ch;
+
+ public CharElement(char ch) {
+ this.ch = ch;
+ }
+
+ @Override
+ public void addElement(CharArrayWriter buf, Date date, Request
request, Response response, long time) {
+ buf.write(ch);
+ }
+ }
+
@Override
protected AccessLogElement[] createLogElements() {
List<AccessLogElement> logElements = new
ArrayList<>(Arrays.asList(super.createLogElements()));
ListIterator<AccessLogElement> lit = logElements.listIterator();
- lit.add(new AccessLogElement() {
- @Override
- public void addElement(CharArrayWriter buf, Date date, Request
request, Response response, long time) {
- buf.write('{');
- }});
+ lit.add(new CharElement('{'));
while (lit.hasNext()) {
AccessLogElement logElement = lit.next();
// remove all other elements, like StringElements
@@ -109,20 +121,12 @@ public class JsonAccessLogValve extends AccessLogValve {
lit.remove();
continue;
}
- lit.add(new AccessLogElement() {
- @Override
- public void addElement(CharArrayWriter buf, Date date, Request
request, Response response, long time) {
- buf.write(',');
- }});
+ lit.add(new CharElement(','));
}
// remove last comma again
lit.previous();
lit.remove();
- lit.add(new AccessLogElement() {
- @Override
- public void addElement(CharArrayWriter buf, Date date, Request
request, Response response, long time) {
- buf.write('}');
- }});
+ lit.add(new CharElement('}'));
return logElements.toArray(new AccessLogElement[logElements.size()]);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]