When I try to use logger in a model, I get a NameError:
for example,
class ItemFactory
def getItemById(id)
logger.info(“getItemById #{id}”)
end
end
produces…
NameError: undefined local variable or method logger' for #<ItemFactory:0x327362c> /Users/jalmberg/rails/tstools/config/../app/models/item_factory.rb:3:in
getItemById’
test/unit/company_test.rb:17:in `test_item_factory’
I get the same kind of error when I try to use logger in unit tests,
like:
def test_item_factory
item = itemFactory.getItemById(target_lot)
assert_equal item[‘lot_number’], target_lot
logger.info(“found lot # #{item[‘lot_number’]}”)
end
What am I doing wrong? Do I need to import the logger object into the
model
or test namespace? Some other trick?
TIA: John
On 10/30/07, Identry [email protected] wrote:
When I try to use logger in a model, I get a NameError:
for example,
class ItemFactory
where is “< ActiveRecord::Base” ?
require ‘logger’
class ItemFactory < Active::Base
def initialize(log_file)
@@logger = Logger.new(log_file)
end
def getItemById(id)
@@logger.info(“getItemById #{id}”)
# write what ever code you want
find(id)
end
end
Regards,
Raghu KUmar K
Bob/Raghu,
Thanks for your responses…
The ItemFactory model isn’t an ActiveRecord. I wonder if that could be
the
problem?
require ‘logger’
This seems like a good idea, but it doesn’t work. I get the same error.
What does work, I’ve discovered, is using RAILS_DEFAULT_LOGGER, as in
class ItemFactory
def getItemById(id)
RAILS_DEFAULT_LOGGER.info(“getItemById #{id}”)
end
end
Seems odd, I think. BTW, I’m using Rails 1.2.3.
– John