error logging with nginx and uWSGI

Maxim Dounin mdounin at mdounin.ru
Tue May 5 14:02:03 UTC 2015


Hello!

On Tue, May 05, 2015 at 08:08:42AM -0400, Larry Martell wrote:

> On Sun, May 3, 2015 at 8:18 AM, Maxim Dounin <mdounin at mdounin.ru> wrote:
> > Hello!
> >
> > On Fri, May 01, 2015 at 12:04:51PM -0400, Larry Martell wrote:
> >
> >> Prior to now, all the django projects I've worked on have used apache
> >> and WSGI. With those, when an error occurred I went to
> >> /var/log/httpd/error_log and details of the error were clearly there.
> >>
> >> Now for the first time I am working on a project using nginx and
> >> uWSGI. Here, the /var/log/nginx/error_log is always empty. And the
> >> uWSGI logs have some messages, but nothing about any errors. In this
> >> setup where would I go to find the errors that
> >> /var/log/httpd/error_log logs? Is there some config setting that is
> >> suppressing the nginx errors?
> >
> > The uwsgi protocol doesn't include an error stream from an
> > application to nginx.  That is, if you are looking for errors
> > generated by your application, you should look into uWSGI logs.
> >
> > Own nginx logs can be controlled using the error_log directive,
> > see http://nginx.org/r/error_log.  But I suspect it's not what are
> > you looking for, see above.
> 
> When my app has, for example, a syntax error, then yes, that appears
> in the uWSGI log. But what I was talking about are the HTTP errors
> like a 500 or a 400. When I get those there's nothing in the logs.

If an error is returned by your application and/or uWSGI, then its 
reasons are expected to be in your application logs (or the uWSGI 
logs).

If an error is returned by nginx (e.g., because a client sent an 
invalid request and nginx returned 400), then reasons should be in 
nginx error log.  Client-related errors, though, are usually 
logged at the "info" level, and won't be visible in error log by 
default, see http://nginx.org/r/error_log.

Note well that nginx error logs are highly customizeable, and it 
is possible that you are looking into a wrong file.  In 
particular, please note that default error log can be redefined 
during compilation (see "nginx -V" output to find out which one is 
used by default), and can also be redefined on a per-server or a 
per-location basis (check your configs to find out if it's the 
case).

-- 
Maxim Dounin
http://nginx.org/



More information about the nginx mailing list