summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CHANGES2
-rw-r--r--docs/manual/mod/mod_log_config.html1
-rw-r--r--modules/loggers/mod_log_config.c9
3 files changed, 12 insertions, 0 deletions
diff --git a/CHANGES b/CHANGES
index acfd169270..9d708844a8 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,4 +1,6 @@
Changes with Apache 2.0b1
+ *) Add new LogFormat directive, %D, to log time it takes to serve a
+ request in microseconds. [Bill Stoddard]
*) Change AddInputFilter and AddOutputFilter to SetInputFilter and
SetOutputFilter. This corresponds nicely with the other Set
diff --git a/docs/manual/mod/mod_log_config.html b/docs/manual/mod/mod_log_config.html
index 744d61219e..f90dffd140 100644
--- a/docs/manual/mod/mod_log_config.html
+++ b/docs/manual/mod/mod_log_config.html
@@ -137,6 +137,7 @@ by the values as follows:</p>
'-' = connection will be closed after the response is sent.
%...{Foobar}C: The contents of cookie "Foobar" in the request sent to the
server.
+%...D: The time taken to serve the request, in microseconds.
%...{FOOBAR}e: The contents of the environment variable FOOBAR
%...f: Filename
%...h: Remote host
diff --git a/modules/loggers/mod_log_config.c b/modules/loggers/mod_log_config.c
index 16c9f526cc..6b103aae7a 100644
--- a/modules/loggers/mod_log_config.c
+++ b/modules/loggers/mod_log_config.c
@@ -145,6 +145,7 @@
* %...{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.
+ * %...D: the time taken to serve the request, in micro seconds.
* %...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?)
@@ -490,6 +491,11 @@ static const char *log_request_duration(request_rec *r, char *a)
/ APR_USEC_PER_SEC);
}
+static const char *log_request_duration_microseconds(request_rec *r, char *a)
+{
+ return apr_psprintf(r->pool, "%ld", (apr_time_now() - r->request_time));
+}
+
/* These next two routines use the canonical name:port so that log
* parsers don't need to duplicate all the vhost parsing crud.
*/
@@ -618,6 +624,9 @@ static struct log_item_list {
'C', log_cookie, 0
},
{
+ 'D', log_request_duration_microseconds, 1
+ },
+ {
'\0'
}
};