tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Tim Funk <funk...@apache.org>
Subject Re: svn commit: r950587 - in /tomcat/trunk: java/org/apache/catalina/AccessLog.java java/org/apache/catalina/connector/CoyoteAdapter.java java/org/apache/catalina/valves/AccessLogValve.java webapps/docs/config/valve.xml
Date Wed, 02 Jun 2010 15:40:17 GMT
Cool - One (very minor) nit ... A safer size might be 500.
A typical User agent string by itself is 100+ characters which will 
easily take the log line over 128 characters.

StringBuilder result = new StringBuilder(128);

-Tim


On 6/2/2010 11:12 AM, markt@apache.org wrote:
> Author: markt
> Date: Wed Jun  2 15:12:36 2010
> New Revision: 950587
>
> URL: http://svn.apache.org/viewvc?rev=950587&view=rev
> Log:
> Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=49099
> Hooking the CoyoteAdaptor into the existing AccessLog wasn't as invasive as I feared
so go that route to log requests rejected by the Adaptor before the request/response reaches
the AcessLogValve
>
> Added:
>      tomcat/trunk/java/org/apache/catalina/AccessLog.java   (with props)
> Modified:
>      tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java
>      tomcat/trunk/java/org/apache/catalina/valves/AccessLogValve.java
>      tomcat/trunk/webapps/docs/config/valve.xml
>
> Added: tomcat/trunk/java/org/apache/catalina/AccessLog.java
> URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/AccessLog.java?rev=950587&view=auto
> ==============================================================================
> --- tomcat/trunk/java/org/apache/catalina/AccessLog.java (added)
> +++ tomcat/trunk/java/org/apache/catalina/AccessLog.java Wed Jun  2 15:12:36 2010
> @@ -0,0 +1,47 @@
> +/*
> + * Licensed to the Apache Software Foundation (ASF) under one or more
> + * contributor license agreements.  See the NOTICE file distributed with
> + * this work for additional information regarding copyright ownership.
> + * The ASF licenses this file to You under the Apache License, Version 2.0
> + * (the "License"); you may not use this file except in compliance with
> + * the License.  You may obtain a copy of the License at
> + *
> + *      http://www.apache.org/licenses/LICENSE-2.0
> + *
> + * Unless required by applicable law or agreed to in writing, software
> + * distributed under the License is distributed on an "AS IS" BASIS,
> + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
> + * See the License for the specific language governing permissions and
> + * limitations under the License.
> + */
> +
> +package org.apache.catalina;
> +
> +import org.apache.catalina.connector.Request;
> +import org.apache.catalina.connector.Response;
> +
> +
> +/**
> + * Intended for use by a {@link Valve} to indicate that the {@link Valve}
> + * provides access logging. It is used by the Tomcat internals (the
> + * {@link org.apache.catalina.connector.CoyoteAdapter} at the time of writing)
> + * to identify a Valve that logs access requests so requests that are rejected
> + * earlier in the processing chain can still be added to the access log.
> + * Implementations of this interface should be robust against the provided
> + * {@link Request} and {@link Response} objects being null, having null
> + * attributes or any other 'oddness' that may result from attempting to log
> + * a request that was almost certainly rejected because it was mal-formed.
> + */
> +public interface AccessLog {
> +
> +    /**
> +     * Add the request/response to the access log using the specified processing
> +     * time.
> +     *
> +     * @param request   Request (associated with the response) to log
> +     * @param response  Response (associated with the request) to log
> +     * @param time      Time taken to process the request/response in
> +     *                  milliseconds (use 0 if not known)
> +     */
> +    public void log(Request request, Response response, long time);
> +}
>
> Propchange: tomcat/trunk/java/org/apache/catalina/AccessLog.java
> ------------------------------------------------------------------------------
>      svn:eol-style = native
>

> Modified: tomcat/trunk/java/org/apache/catalina/valves/AccessLogValve.java
> URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/valves/AccessLogValve.java?rev=950587&r1=950586&r2=950587&view=diff

> +    public void log(Request request, Response response, long time) {
> +        if (logElements == null || condition != null
> +&&  null != request.getRequest().getAttribute(condition)) {
> +            return;
> +        }
> +
> +        Date date = getDate();
> +        StringBuilder result = new StringBuilder(128);
> +
> +        for (int i = 0; i<  logElements.length; i++) {
> +            logElements[i].addElement(result, date, request, response, time);
> +        }
> +
> +        log(result.toString());
> +    }

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


Mime
View raw message