Passing variables to access_log, error_log names

Maxim Dounin mdounin at mdounin.ru
Sun Feb 27 02:01:57 MSK 2011


Hello!

On Sat, Feb 26, 2011 at 04:49:48PM -0500, ajgon wrote:

> Hello,
> 
> I am configuring an automagic virtual hosting on my private machine, to
> serve myself projects which I currently work on. Configuration I'm using
> is like this:
> 
> server {
>   listen 80;
>   server_name ~^(www\.)?(?P[^.]+).mydomain.com$;

Just a side note: forum is still eating data (originally 
"P<project>" was here), you may want to consider using mailing 
list directly instead.

>   root /home/ajgon/htdocs/$project;
>   access_log /var/log/nginx/$project.mydomain.com.access_log main;
>   error_log /var/log/nginx/$project.mydomain.com.error_log info;
>   include lang/php;
> }
> 
> Everything is working as expected - except one thing. I'm getting two
> log files with following names:
> /var/log/nginx/$project.mydomain.com.access_log
> /var/log/nginx/$project.mydomain.com.error_log
> for any Vhost.
> 
> Is there any sollution to make nginx parse the variable and set proper
> log name?

There is no variables support in error_log directive (and it's 
unlikely to appear), so "...error_log" file is expected.  Use 
common error_log for all vhosts instead.

Variables in access_log should work as of 0.7.4+.  On the other 
hand, named captures in regular expressions only supported in 
0.8.25+.  Are you sure you see "...access_log" file?  Which 
version you are using?

Maxim Dounin



More information about the nginx mailing list