comparison mod_http_logging/mod_http_logging.lua @ 2965:557c976735e1

mod_http_logging: Factor out logging into a function for future reuse
author Kim Alvefur <zash@zash.se>
date Fri, 30 Mar 2018 13:34:15 +0200
parents 88fec2b2bd58
children 678be8ea4d38
comparison
equal deleted inserted replaced
2964:1c336d0d0214 2965:557c976735e1
12 12
13 module:set_global(); 13 module:set_global();
14 14
15 local server = require "net.http.server"; 15 local server = require "net.http.server";
16 16
17 local function log_response(response, body)
18 body = body or response.body;
19 local len = response.headers.content_length or (body and #body) or "-";
20 local request = response.request;
21 local ip = request.conn:ip();
22 local req = string.format("%s %s HTTP/%s", request.method, request.path, request.httpversion);
23 local date = os.date("%d/%m/%Y:%H:%M:%S %z");
24 module:log("info", "%s - - [%s] \"%s\" %d %s", ip, date, req, response.status_code, tostring(len));
25 end
26
17 local send_response = server.send_response; 27 local send_response = server.send_response;
18 local function log_and_send_response(response, body) 28 local function log_and_send_response(response, body)
19 if not response.finished then 29 if not response.finished then
20 body = body or response.body; 30 log_response(response, body);
21 local len = body and #body or "-";
22 local request = response.request;
23 local ip = request.conn:ip();
24 local req = string.format("%s %s HTTP/%s", request.method, request.path, request.httpversion);
25 local date = os.date("%d/%m/%Y:%H:%M:%S %z");
26 module:log("info", "%s - - [%s] \"%s\" %d %s", ip, date, req, response.status_code, tostring(len));
27 end 31 end
28 return send_response(response, body); 32 return send_response(response, body);
29 end 33 end
30 34
31 if module.wrap_object_event then 35 if module.wrap_object_event then