Adding cachekey to log_format directive

I'm trying to add the generated cache key of a proxied request to a log_format directive. From what I can tell, this variable is not normally available when logging requests so I've to modify the proxy module in ngx_http_proxy_module.c.

So far I've added "cachekey" to the typedef struct: ngx_http_proxy_vars_t so that ngx_http_proxy_set_var can set it.

I've added the declaration:

static ngx_int_t ngx_http_proxy_cachekey_variable(ngx_http_request_t *r, ngx_http_variable_value_t *v, uintptr_t data); and in the corresponding function (which is basically a copy of ngx_http_proxy_host_variable), I do:

The question I have is, how do I get the generated cache key in the v.cachekey.data field? If I populate these variables with arbitrary data I can see its being logged correctly so am confident I'm in the right place.