Projects
Wiki     Timeline     Roadmap     Browse Source     View Tickets     New Ticket     Search

Apache-style Access Log Extensions

Calendar Server extends the Apache log file format it uses by:

  • Adding a "sub-method" to the HTTP method field.
  • Adding key-value pairs at the end of log lines.

The sub-method is adding by appending the name of the sub-method in parentheses to the original HTTP request method. This is used to clarify what operation is going on for HTTP methods that are commonly used to tunnel other operations, such as POST and REPORT. For example, CalDAV uses POST for free/busy lookups, and REPORT can be used to make any sort of query.

Key-value pairs are used to provide additional details about the request. They are added to the end of the line as new fields in the form key=value.

These keys are always emitted:

i

the port number of the server instance emitting the log

t

the amount of time spent processing the request (in milliseconds).

or

the number of outstanding requests enqueued for the server instance emitting the log entry.

Keys that may be emitted depending on the client request and server response include:

rcount

the number of resources specified in a MULTIGET request.

responses

the number of responses included in a multi-status response to a PROPFIND request or a CalDAV calendar-query request.

recipients

the number of recipients in a CalDAV scheduling request via POST (which are typically only free/busy requests).

itip.requests

the number of attendees in a scheduling operation triggered by an Organizer.

itip.refreshes

the number of attendee refreshes completed after a scheduling operation.

itip.reply

Either reply or cancel depending on...???

fwd

the value of the X-Forwarded-For header, if present

In the following example, we see a CalDAV:calendar-multiget REPORT for 32 resources in a user's calendar, which was handled by instance 8459 in 183.0ms, with one outstanding request (the one being logged):

17.108.160.37 - scastillo [15/Sep/2009:20:10:23 +0000] "REPORT(CalDAV:calendar-multiget) /calendars/__uids__/B8CE9430-965B-11DE-B626-EC2E9DB52B69/calendar/ HTTP/1.1" 207 149285 "-" "DAVKit/4.0 (729); CalendarStore/4.0 (965); iCal/4.0 (1362); Mac OS X/10.6.1 (10B504)" i=8459 t=183.0 or=1 rcount=32