http_log_module filter by status

Maxim Dounin mdounin at mdounin.ru
Tue Jun 12 20:08:44 UTC 2012


Hello!

On Sun, Jun 10, 2012 at 01:40:12PM -0400, karlseguin wrote:

> I was interested in having nginx log 404s to their own file.
> Essentially, i _hate_ 404s, so I like to parse access logs find and
> report all 404s. However, as-is, parsing large access logs can be quite
> inefficient since 404s represent such a small % of the entire file. I
> was thinking nginx could filter it out at write-time:
> 
> access_log  not_found.log  combined buffer=16K 404;
> 
> 
> Apologies for the lameness of the code, but this is what I came up
> with:
> https://gist.github.com/2906701
> 
> I certainly don't recommend anyone uses it, I'm mostly just looking for
> feedback. Is this better off in its own module? (there's so much code in
> the http_log_module that I want to leverage though). There's much more
> filtering that could go on that perhaps a new directive is a better
> approach:
> 
> access_log_filter $status /(40\d)/
> access_log_filter $method GET
> 
> (which is certainly beyond my capabilities).
> 
> Thoughts?

error_page 404 /404.html;

location = /404.html {
    access_log /path/to/log;
}

Maxim Dounin



More information about the nginx mailing list