What's 'logger', really

Hi, I don't understand how we can just call 'logger' from any method,

You can't call it from any method. ActionController::Base, ActiveRecord::Base and a few others have accessors called logger that returns a Logger object so whenever you're in an instance method of an ActiveRecord::Base subclass you can call it (class methods too - the accessor is defined on those classes as well). If the object you're writing a method for doesn't have a logger method then you can't call logger, if it does you can.

Fred

Rails also stores a Logger object in RAILS_DEFAULT_LOGGER, so you can for instance get access to it in testing by including something this simple in /test/test_helper.rb:

def logger   RAILS_DEFAULT_LOGGER end

There may be far better ways to find why tests fail, but tossing in some

logger.info("wonky_var value: #{wonky_var}")

calls in unit/functional tests and watching what shows up in /log/ test.log is pretty useful.

i find I cant send to logger in production mode if I am running a script/runner on a model method.

Works in development mode, must be a reason for this although I cant figure it

Output just seems to go nowhere

Tonypm