Forum: Ruby on Rails What's 'logger', really

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Steve D. (Guest)
on 2009-03-31 00:08
Hi, I don't understand how we can just call 'logger' from any method,
but when using observers we have to have it attached to some kind of
object (usually the model of the object being observed). Why is that?
What is logger exactly?
Frederick C. (Guest)
on 2009-03-31 00:32
(Received via mailing list)
On Mar 30, 9:08 pm, Steve D. <removed_email_address@domain.invalid>
wrote:
> 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
> but when using observers we have to have it attached to some kind of
> object (usually the model of the object being observed). Why is that?
> What is logger exactly?
Stan K. (Guest)
on 2009-03-31 20:46
(Received via mailing list)
On Mar 30, 1:32 pm, Frederick C. <removed_email_address@domain.invalid>
wrote:
> 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

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.
Tonypm (Guest)
on 2009-04-09 21:35
(Received via mailing list)
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
This topic is locked and can not be replied to.