that's why you encapsulate instance variables
class Foo
def self.logger
@logger ||= begin
[...]
Logger.new(stdout)
end
end
def self.start
function1
function2
end
def self.function1
logger.info 'function1 foo'
end
def self.start
logger.info 'function2 bar'
end
end