How to instantiate a logger in an Engine only once and then use only that object?

6 views
Skip to first unread message

Wins Lin

unread,
Jun 14, 2013, 4:15:02 AM6/14/13
to rubyonra...@googlegroups.com
I found this thread: http://www.ruby-forum.com/topic/151906

One commentator says:

>To minimize engines polluting our logs, we just changed the logger for
>the engines plugin like this:

>In engines.rb, update the logger method:

> def logger
> #RAILS_DEFAULT_LOGGER
> Logger.new(RAILS_ROOT + "/log/engines.log")
> end

>And then create an "engines.log" under your /log directory. Now all
>engines related logging will be directed to that file instead of your
>development.log.

My question is, how to use it then? Wouldn't it instantiate a new Logger
instance every time I call it?

def some_foo_method
# I want to log something, I call the logger method
logger.debug("I did something")
end

So, the "logger" method instantiates a new Logger instance every time.
It is not good to have dozens logger instances in memory. How to avoid
it? How to instantiate only once and then just use that one instance?

--
Posted via http://www.ruby-forum.com/.
Reply all
Reply to author
Forward
0 new messages