This is an automated email from the ASF dual-hosted git repository.

markt pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tomcat.git

commit 987f737afe4f08da939d870b5b1ec4b96010d926
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Mon Feb 24 12:25:31 2025 +0000

    Add connection ID to the ExtendedAccessLogValve
---
 java/org/apache/catalina/valves/ExtendedAccessLogValve.java | 8 ++++++++
 webapps/docs/changelog.xml                                  | 6 ++++++
 webapps/docs/config/valve.xml                               | 1 +
 3 files changed, 15 insertions(+)

diff --git a/java/org/apache/catalina/valves/ExtendedAccessLogValve.java 
b/java/org/apache/catalina/valves/ExtendedAccessLogValve.java
index 28e6d2e5c6..819096df0e 100644
--- a/java/org/apache/catalina/valves/ExtendedAccessLogValve.java
+++ b/java/org/apache/catalina/valves/ExtendedAccessLogValve.java
@@ -70,6 +70,7 @@ import org.apache.tomcat.util.ExceptionUtils;
  * <li>For any of the x-H(...) the following method will be called from the 
HttpServletRequest object</li>
  * <li><code>x-H(authType)</code>: getAuthType</li>
  * <li><code>x-H(characterEncoding)</code>: getCharacterEncoding</li>
+ * <li><code>x-H(connectionId)</code>: getConnectionId</li>
  * <li><code>x-H(contentLength)</code>: getContentLength</li>
  * <li><code>x-H(locale)</code>: getLocale</li>
  * <li><code>x-H(protocol)</code>: getProtocol</li>
@@ -767,6 +768,13 @@ public class ExtendedAccessLogValve extends AccessLogValve 
{
                     buf.append(wrap("" + request.getContentLengthLong()));
                 }
             };
+        } else if ("connectionId".equals(parameter)) {
+            return new AccessLogElement() {
+                @Override
+                public void addElement(CharArrayWriter buf, Date date, Request 
request, Response response, long time) {
+                    buf.append(wrap("" + 
request.getServletConnection().getConnectionId()));
+                }
+            };
         } else if ("characterEncoding".equals(parameter)) {
             return new AccessLogElement() {
                 @Override
diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index e24c2e8cc3..b9188c4249 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -159,6 +159,12 @@
         <code>HttpServletRequest.login(String username, String password)</code>
         when the realm is configured to use GSSAPI authentication. (markt)
       </fix>
+      <add>
+        Add support for logging the connection ID (as returned by
+        <code>ServletRequest.getServletConnection().getConnectionId()</code>)
+        with the <code>ExtendedAccessLogValve</code>. Based on pull request
+        <pr>814</pr> by Dmole. (markt)
+      </add>
     </changelog>
   </subsection>
   <subsection name="Coyote">
diff --git a/webapps/docs/config/valve.xml b/webapps/docs/config/valve.xml
index da28586791..09c346563d 100644
--- a/webapps/docs/config/valve.xml
+++ b/webapps/docs/config/valve.xml
@@ -477,6 +477,7 @@
     <ul>
     <li><b><code>x-H(authType)</code></b>: getAuthType </li>
     <li><b><code>x-H(characterEncoding)</code></b>: getCharacterEncoding </li>
+    <li><b><code>x-H(connectionId)</code></b>: 
getServletConnection().getConnectionId</li>
     <li><b><code>x-H(contentLength)</code></b>: getContentLength </li>
     <li><b><code>x-H(locale)</code></b>:  getLocale</li>
     <li><b><code>x-H(protocol)</code></b>: getProtocol </li>


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to