BUG report: error log separation per virtual host does not work
Maxim Dounin
mdounin at mdounin.ru
Thu Jan 8 13:36:31 MSK 2009
Hello!
On Wed, Jan 07, 2009 at 09:09:02PM -0800, Dan Dascalescu wrote:
> I reported this bug already at
> http://thread.gmane.org/gmane.comp.web.nginx.english/1604/focus=1628
> but was using the stable version of nginx. I just upgraded to the
> latest development version, 0.7.30, and the bug is still there:
>
> I want to have separate error logs for each virtual host. Here is my
> config file, with only one host so far:
>
> error_log logs/main_error.log;
>
> events {
> worker_connections 1024;
> }
>
> http {
> error_log logs/http_error.log;
> server {
> server_name myname.org;
> access_log logs/the_org.access;
> error_log logs/the_org.error;
> }
> }
>
> Here is the problem: when the server receives a request for
> http://myname.org/nonexistent.file, the request shows up in the access
> log (the_org.access), but all 3 error logs remain blank. The error
> only shows up in the main_error.log if I comment the
> "error_log logs/http_error.log;"
> and
> "error_log logs/the_org.error;"
> lines.
The problem is that nginx sets reasonable logging level
automatically only for global error_log (it's defaults to error if
not defined). For others it's defaults to stderr, i.e. nothing is
logged. Solution is simple - explicitly specify logging level:
error_log logs/main_error.log error;
events {
worker_connections 1024;
}
http {
error_log logs/http_error.log error;
server {
server_name myname.org;
access_log logs/the_org.access;
error_log logs/the_org.error error;
}
}
Since there is no official documentation for error_log directive
at all - this probably can't be considered as a bug. It's up to
Igor either fix it or document as is.
Maxim Dounin
More information about the nginx
mailing list