diff --git a/core/logging.c b/core/logging.c index b9a22413..912ed6ed 100644 --- a/core/logging.c +++ b/core/logging.c @@ -623,6 +623,15 @@ void uwsgi_logit_simple(struct wsgi_request *wsgi_req) { rlen = snprintf(logpkt, 4096, "[pid: %d|app: %d|req: %d/%llu] %.*s (%.*s) {%d vars in %d bytes} [%.*s] %.*s %.*s => generated %llu bytes in %llu %s%s(%.*s %d) %d headers in %llu bytes (%d switches on core %d)\n", (int) uwsgi.mypid, wsgi_req->app_id, app_req, (unsigned long long) uwsgi.workers[0].requests, wsgi_req->remote_addr_len, wsgi_req->remote_addr, wsgi_req->remote_user_len, wsgi_req->remote_user, wsgi_req->var_cnt, wsgi_req->uh.pktsize, 24, time_request, wsgi_req->method_len, wsgi_req->method, wsgi_req->uri_len, wsgi_req->uri, (unsigned long long) wsgi_req->response_size, (unsigned long long) rt, tsize, via, wsgi_req->protocol_len, wsgi_req->protocol, wsgi_req->status, wsgi_req->header_cnt, (unsigned long long) wsgi_req->headers_size, wsgi_req->switches, wsgi_req->async_id); + // not enough space for logging the request, just log a (safe) minimal message + if (rlen > 4096) { + rlen = snprintf(logpkt, 4096, "[pid: %d|app: %d|req: %d/%llu] 0.0.0.0 () {%d vars in %d bytes} [%.*s] - - => generated %llu bytes in %llu %s%s(- %d) %d headers in %llu bytes (%d switches on core %d)\n", (int) uwsgi.mypid, wsgi_req->app_id, app_req, (unsigned long long) uwsgi.workers[0].requests, wsgi_req->var_cnt, wsgi_req->uh.pktsize, 24, time_request, (unsigned long long) wsgi_req->response_size, (unsigned long long) rt, tsize, via, wsgi_req->status, wsgi_req->header_cnt, (unsigned long long) wsgi_req->headers_size, wsgi_req->switches, wsgi_req->async_id); + // argh, last resort, truncate it + if (rlen > 4096) { + rlen = 4096; + } + } + logvec[logvecpos].iov_base = logpkt; logvec[logvecpos].iov_len = rlen; diff --git a/uwsgiconfig.py b/uwsgiconfig.py index 54b47dbf..e33d35dc 100644 --- a/uwsgiconfig.py +++ b/uwsgiconfig.py @@ -743,6 +743,7 @@ class uConf(object): if self.get('as_shared_library'): self.ldflags.append('-shared') self.ldflags.append('-fPIC') + self.cflags.append('-fPIC') self.cflags.append('-DUWSGI_AS_SHARED_LIBRARY') if uwsgi_os == 'Darwin': self.ldflags.append('-dynamiclib')