Is the default Rails production.log supposed to log referrer with every request? I see that there is 'info' level logging of each incoming request. But in my logs, they don't have 'referrer' logged. Is this because default Rails logging doesn't do this, or is this because my mongrel setup is eating the referrer somehow? What's the easiest way to add referrer logging to Rails logging? I like the logging of each request, I just want to know the referrer for every request too. (Mainly to help me with debugging; if an error happened in a request, it's helpful to know if the URL came from an external link or from my application itself). Thanks for any help!
on 18.03.2008 17:02
on 25.04.2008 20:47
To answer my own question from a month ago, to add logging of HTTP
referer (spelled right) into a Rails (1.2.x; can't speak for 2.x) app,
override log_processing in application.rb:
def log_processing
super
if logger && logger.info?
logger.info(" HTTP Referer: #{request.referer}")
end
end
Seems to work nicely. Since sometimes referers can be long, you may or
may not want to truncate to some value:
logger.info(" HTTP Referer: #{request.referer[0..100]}")
Jonathan
Jonathan Rochkind wrote:
> Is the default Rails production.log supposed to log referrer with every
> request?
>
> I see that there is 'info' level logging of each incoming request. But
> in my logs, they don't have 'referrer' logged. Is this because default
> Rails logging doesn't do this, or is this because my mongrel setup is
> eating the referrer somehow?
>
> What's the easiest way to add referrer logging to Rails logging? I like
> the logging of each request, I just want to know the referrer for every
> request too. (Mainly to help me with debugging; if an error happened in
> a request, it's helpful to know if the URL came from an external link or
> from my application itself).
>
> Thanks for any help!