You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Jeff Trawick <tr...@gmail.com> on 2015/05/21 20:54:13 UTC

Re: svn commit: r1680895 - in /httpd/httpd/trunk: docs/manual/mod/mod_log_config.xml modules/loggers/mod_log_config.c

On 05/21/2015 11:07 AM, rjung@apache.org wrote:
> Author: rjung
> Date: Thu May 21 15:07:15 2015
> New Revision: 1680895
>
> URL: http://svn.apache.org/r1680895
> Log:
> mod_log_config: instead of using the new dedicated
> pattern format "%M" for duration milliseconds,
> overload the existing "%D" to choose the time precision
> ("%{s}D" for seconds, "%{ms}D" for milliseconds and
> "%{us}D" for microseconds).
>
> The existing %T and %D without precision are kept for
> compatibility.
>
> The previously introduced "%M" (r1677187) is removed,
> it has not yet been released. Format pattern characters
> are rare, so we should only use a new one if an
> existing one isn't a good fit.
>
> Modified:
>      httpd/httpd/trunk/docs/manual/mod/mod_log_config.xml
>      httpd/httpd/trunk/modules/loggers/mod_log_config.c
>
> Modified: httpd/httpd/trunk/docs/manual/mod/mod_log_config.xml
> URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/docs/manual/mod/mod_log_config.xml?rev=1680895&r1=1680894&r2=1680895&view=diff
> ==============================================================================
> --- httpd/httpd/trunk/docs/manual/mod/mod_log_config.xml (original)
> +++ httpd/httpd/trunk/docs/manual/mod/mod_log_config.xml Thu May 21 15:07:15 2015
> @@ -95,6 +95,16 @@
>       <tr><td><code>%D</code></td>
>           <td>The time taken to serve the request, in microseconds.</td></tr>
>   
> +    <tr><td><code>%{<var>UNIT</var>}D</code></td>
> +        <td>The time taken to serve the request, in a time unit given by
> +        <code>UNIT</code>. Valid units are <code>ms</code> for milliseconds,
> +        <code>us</code> for microseconds and <code>s</code> for seconds.
> +        Using <code>us</code> gives the same result as <code>%D</code>
> +        without any format, using <code>s</code> gives teh same result
> +        as <code>%T</code>. Combining <code>%D</code> with a unit is
> +        available in 2.4.13 and later.</td></tr>
> +        </td></tr>
> +
>       <tr><td><code>%{<var>VARNAME</var>}e</code></td>
>           <td>The contents of the environment variable
>           <var>VARNAME</var>.</td></tr>
> @@ -146,10 +156,6 @@
>       <tr><td><code>%m</code></td>
>           <td>The request method.</td></tr>
>   
> -    <tr><td><code>%M</code></td>
> -        <td>The time taken to serve the request, in milliseconds.
> -        (available in 2.4.13 and later)</td></tr>
> -

This is a very nice improvement over introducing "M", and Yann's 
suggestion to expand "T" instead of "D" is an increment above that.

Any concerns if I switch them out?

>       <tr><td><code>%{<var>VARNAME</var>}n</code></td>
>           <td>The contents of note <var>VARNAME</var> from another
>           module.</td></tr>
>
> Modified: httpd/httpd/trunk/modules/loggers/mod_log_config.c
> URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/loggers/mod_log_config.c?rev=1680895&r1=1680894&r2=1680895&view=diff
> ==============================================================================
> --- httpd/httpd/trunk/modules/loggers/mod_log_config.c (original)
> +++ httpd/httpd/trunk/modules/loggers/mod_log_config.c Thu May 21 15:07:15 2015
> @@ -101,8 +101,10 @@
>    * %...{format}t:  The time, in the form given by format, which should
>    *                 be in strftime(3) format.
>    * %...T:  the time taken to serve the request, in seconds.
> - * %...M:  the time taken to serve the request, in milliseconds
>    * %...D:  the time taken to serve the request, in micro seconds.
> + * %...{s}D:  the time taken to serve the request, in seconds, same as %T.
> + * %...{us}D:  the time taken to serve the request, in micro seconds, same as %D.
> + * %...{ms}D:  the time taken to serve the request, in milliseconds.
>    * %...u:  remote user (from auth; may be bogus if return status (%s) is 401)
>    * %...U:  the URL path requested.
>    * %...v:  the configured name of the server (i.e. which virtual host?)
> @@ -803,17 +805,22 @@ static const char *log_request_duration(
>       return apr_psprintf(r->pool, "%" APR_TIME_T_FMT, apr_time_sec(duration));
>   }
>   
> -static const char *log_request_duration_milliseconds(request_rec *r, char *a)
> +static const char *log_request_duration_scaled(request_rec *r, char *a)
>   {
>       apr_time_t duration = get_request_end_time(r) - r->request_time;
> -    return apr_psprintf(r->pool, "%" APR_TIME_T_FMT, apr_time_as_msec(duration));
> -}
> -
> -
> -static const char *log_request_duration_microseconds(request_rec *r, char *a)
> -{
> -    return apr_psprintf(r->pool, "%" APR_TIME_T_FMT,
> -                        (get_request_end_time(r) - r->request_time));
> +    if (*a == '\0' || !strcasecmp(a, "us")) {
> +    }
> +    else if (!strcasecmp(a, "ms")) {
> +        duration = apr_time_as_msec(duration);
> +    }
> +    else if (!strcasecmp(a, "s")) {
> +        duration = apr_time_sec(duration);
> +    }
> +    else {
> +        /* bogus format */
> +        return a;
> +    }
> +    return apr_psprintf(r->pool, "%" APR_TIME_T_FMT, duration);
>   }
>   
>   /* These next two routines use the canonical name:port so that log
> @@ -1844,8 +1851,7 @@ static int log_pre_config(apr_pool_t *p,
>           log_pfn_register(p, "C", log_cookie, 0);
>           log_pfn_register(p, "k", log_requests_on_connection, 0);
>           log_pfn_register(p, "r", log_request_line, 1);
> -        log_pfn_register(p, "D", log_request_duration_microseconds, 1);
> -        log_pfn_register(p, "M", log_request_duration_milliseconds, 1);
> +        log_pfn_register(p, "D", log_request_duration_scaled, 1);
>           log_pfn_register(p, "T", log_request_duration, 1);
>           log_pfn_register(p, "U", log_request_uri, 1);
>           log_pfn_register(p, "s", log_status, 1);
>
>


Re: svn commit: r1680895 - in /httpd/httpd/trunk: docs/manual/mod/mod_log_config.xml modules/loggers/mod_log_config.c

Posted by Rainer Jung <ra...@kippdata.de>.
Am 21.05.2015 um 20:57 schrieb Eric Covener:
> On Thu, May 21, 2015 at 2:54 PM, Jeff Trawick <tr...@gmail.com> wrote:
>> This is a very nice improvement over introducing "M", and Yann's suggestion
>> to expand "T" instead of "D" is an increment above that.
>>
>> Any concerns if I switch them out?
>
> +1 here

No concern. I'm just to lazy to do it myself after goind down the %D 
route. Go ahead if you like. Most of us seem to favor it.

Regards,

Rainer


Re: svn commit: r1680895 - in /httpd/httpd/trunk: docs/manual/mod/mod_log_config.xml modules/loggers/mod_log_config.c

Posted by Jeff Trawick <tr...@gmail.com>.
On 05/21/2015 02:57 PM, Eric Covener wrote:
> On Thu, May 21, 2015 at 2:54 PM, Jeff Trawick <tr...@gmail.com> wrote:
>> This is a very nice improvement over introducing "M", and Yann's suggestion
>> to expand "T" instead of "D" is an increment above that.
>>
>> Any concerns if I switch them out?
> +1 here
done; now fixing up a 2.4.x patch to match...


Re: svn commit: r1680895 - in /httpd/httpd/trunk: docs/manual/mod/mod_log_config.xml modules/loggers/mod_log_config.c

Posted by Eric Covener <co...@gmail.com>.
On Thu, May 21, 2015 at 2:54 PM, Jeff Trawick <tr...@gmail.com> wrote:
> This is a very nice improvement over introducing "M", and Yann's suggestion
> to expand "T" instead of "D" is an increment above that.
>
> Any concerns if I switch them out?

+1 here