From 45eb0c61ef0a9ce7d0598dacb15e59486cec70aa Mon Sep 17 00:00:00 2001 From: pero Date: Thu, 13 Sep 2007 21:06:46 +0000 Subject: [PATCH] Support logging of current thread name at AccessLogValve (ex. add %I to your pattern). git-svn-id: https://svn.apache.org/repos/asf/tomcat/tc6.0.x/trunk@575451 13f79535-47bb-0310-9956-ffa450edef68 --- java/org/apache/catalina/valves/AccessLogValve.java | 20 ++++++++++++++++++++ webapps/docs/changelog.xml | 4 ++++ webapps/docs/config/valve.xml | 1 + 3 files changed, 25 insertions(+) diff --git a/java/org/apache/catalina/valves/AccessLogValve.java b/java/org/apache/catalina/valves/AccessLogValve.java index ef3d6abb2..013cc69ad 100644 --- a/java/org/apache/catalina/valves/AccessLogValve.java +++ b/java/org/apache/catalina/valves/AccessLogValve.java @@ -43,6 +43,7 @@ import org.apache.catalina.connector.Request; import org.apache.catalina.connector.Response; import org.apache.catalina.util.LifecycleSupport; import org.apache.catalina.util.StringManager; +import org.apache.coyote.RequestInfo; import org.apache.juli.logging.Log; import org.apache.juli.logging.LogFactory; @@ -79,6 +80,7 @@ import org.apache.juli.logging.LogFactory; *
  • %v - Local server name *
  • %D - Time taken to process the request, in millis *
  • %T - Time taken to process the request, in seconds + *
  • %I - current Request thread name (can compare later with stacktraces) * *

    In addition, the caller can specify one of the following aliases for * commonly utilized patterns:

    @@ -893,6 +895,7 @@ public class AccessLogValve .getString("accessLogValve.notStarted")); lifecycle.fireLifecycleEvent(STOP_EVENT, null); started = false; + close(); } @@ -906,6 +909,21 @@ public class AccessLogValve } /** + * write thread name - %I + */ + protected class ThreadNameElement implements AccessLogElement { + public void addElement(StringBuffer buf, Date date, Request request, + Response response, long time) { + RequestInfo info = request.getCoyoteRequest().getRequestProcessor(); + if(info != null) { + buf.append(info.getWorkerThreadName()); + } else { + buf.append("-"); + } + } + } + + /** * write local IP address - %A */ protected class LocalAddrElement implements AccessLogElement { @@ -1455,6 +1473,8 @@ public class AccessLogValve return new RequestURIElement(); case 'v': return new LocalServerNameElement(); + case 'I': + return new ThreadNameElement(); default: return new StringElement("???" + pattern + "???"); } diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index 8edb17aa5..d2a4b3895 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -71,6 +71,10 @@ Support logging of all response header values at ExtendedAccessLogValve (ex. add x-O(Set-Cookie) to your pattern). (pero) + + Support logging of current thread name at AccessLogValve (ex. add %I to your pattern). + Usefull to compare access logging entry later with a stacktraces. (pero) + diff --git a/webapps/docs/config/valve.xml b/webapps/docs/config/valve.xml index 68bf9466e..651dcce46 100644 --- a/webapps/docs/config/valve.xml +++ b/webapps/docs/config/valve.xml @@ -179,6 +179,7 @@
  • %v - Local server name
  • %D - Time taken to process the request, in millis
  • %T - Time taken to process the request, in seconds
  • +
  • %I - current request thread name (can compare later with stacktraces)
  • -- 2.11.0