Get varnishlog to log only 503 errors into file

I tried everything:

service varnishlog start - logs everything

varnishlog -D -c -m TxStatus:503 > /var/log/varnish/varnish.log - doesn't seem to be doing anything

varnishlog -c -m TxStatus:503 > /var/log/varnish/varnish.log - only logs until I close my SSH connection

I'm out of options, any help?

Note: varnishncsa is not an option, since it doesn't tell me which error causes the 503. I'm running Varnish 3.x (latest) and CentOS 5.8 with Apache 2 as backend.


If I understand correctly varnishlog -c -m TxStatus:503 > /var/log/varnish/varnish.log does meet your needs but has the downside to stop once you close ssh.

If you need to temporary log 503 error, like for a few months, time to debug a problem, then you can look at nohup or screen.

If you need to permanently log 503 error, have a look at varnishlog init script (/etc/init.d/varnishlog ).


For those who land here in frustration looking for solution to the same problem in Varnish 4, see below:

varnishlog -a -w /var/log/varnish/varnish50x.log -q "RespStatus >= 500 or BerespStatus >= 500"

Varnish 4 did away with the -m option in varnishlog and instead came up with a new filter query language called VSL which is available in the new option -q. In the above command, -a provides appendonly option instead of overwriting the file, -w allows to write output to a file and -q is for the VSL query. Above command will log entries where varnish response or backend response status is >=500 (including the dreaded 503 error).