diff options
-rw-r--r-- | core/logging.c | 6 | ||||
-rw-r--r-- | core/utils.c | 8 | ||||
-rw-r--r-- | uwsgi.h | 1 |
3 files changed, 15 insertions, 0 deletions
diff --git a/core/logging.c b/core/logging.c index 10c40c83..1efceeea 100644 --- a/core/logging.c +++ b/core/logging.c @@ -1170,6 +1170,11 @@ static ssize_t uwsgi_lf_msecs(struct wsgi_request * wsgi_req, char **buf) { return strlen(*buf); } +static ssize_t uwsgi_lf_secs(struct wsgi_request * wsgi_req, char **buf) { + *buf = uwsgi_float2str((wsgi_req->end_of_request - wsgi_req->start_of_request) / 1000000.0); + return strlen(*buf); +} + static ssize_t uwsgi_lf_pid(struct wsgi_request * wsgi_req, char **buf) { *buf = uwsgi_num2str(uwsgi.mypid); return strlen(*buf); @@ -1938,6 +1943,7 @@ void uwsgi_register_logchunks() { r_logchunk(cl); r_logchunk(micros); r_logchunk(msecs); + r_logchunk(secs); r_logchunk(tmsecs); r_logchunk(tmicros); r_logchunk(time); diff --git a/core/utils.c b/core/utils.c index 4da30c44..4edb0fd7 100644 --- a/core/utils.c +++ b/core/utils.c @@ -1903,6 +1903,14 @@ char *uwsgi_num2str(int num) { return str; } +char *uwsgi_float2str(float num) { + + char *str = uwsgi_malloc(11); + + snprintf(str, 11, "%f", num); + return str; +} + char *uwsgi_64bit2str(int64_t num) { char *str = uwsgi_malloc(sizeof(MAX64_STR) + 1); snprintf(str, sizeof(MAX64_STR) + 1, "%lld", (long long) num); @@ -3372,6 +3372,7 @@ void uwsgi_detach_daemons(); void emperor_loop(void); char *uwsgi_num2str(int); +char *uwsgi_float2str(float); char *uwsgi_64bit2str(int64_t); char *magic_sub(char *, size_t, size_t *, char *[]); |