Apache log format
Appearance
The WMF Apache access log format is derived from the cache log format. It has tab-separated fields.
| Field# | Description | Details |
|---|---|---|
| 1 | time stamp | The time at which the request started, in ISO 8601 format, according to the server's clock. |
| 2 | Request service time | Integer number of microseconds |
| 3 | Client IP | You might want to override this with the original client IP (field 17 below). |
| 4 | Request handler, HTTP status code | The Apache request handler, then a slash, then the HTTP status code, e.g. cgi-script/200 |
| 5 | Response size | Size of response in bytes, excluding HTTP headers. |
| 6 | Request method | GET, POST, etc
|
| 7 | URL | The URL, concatenated from the host header, the path and the query string. The protocol is always http, even if mod_ssl was used. In theory we could use SetEnvIf with "SSLOptions StdEnvVars", but the latter has a high performance overhead, according to the documentation. |
| 8 | Empty | For compatibility with the cache log format, this field is always just a hyphen. |
| 9 | MIME content type | The Content-Type response header |
| 10 | Referer header | |
| 11 | X-Forwarded-For header | This field should only be respected if the client IP (see above) is a known good IP (i.e.: in $wgSquidServersNoPurge of wmf-config/squid.php of operations/mediawiki-config). |
| 12 | User-Agent header | |
| 13 | Accept_Language | |
| 14 | X-Analytics | General purpose header for instrumentation, which received its own page at X-Analytics. |
| 15 | User | The username as determined by HTTP authentication |
| 16 | User: Response header | The username as determined by the server and added as the HTTP User: header. Since 2019-03-20 |
| 17 | Original client IP or if local Envoy proxy, the local IP | The original client IP as determined by mod_remoteip, which can walk X-Forwarded-For headers. This module currently needs to be configured on a per-site basis to give good results. If the module is not present, this will be a copy of field 3. |
| 18 | Request ID | Internally we generate a request ID header, X-Request-Id, that should allow to trace a request across logs of various services. Since 2020-02-03 |
| 19 | Original client IP | The original client IP as determined by mod_remoteip, which can walk X-Forwarded-For headers. This module currently needs to be configured on a per-site basis to give good results. If the module is not present, this will be a copy of field 3. |