Я изучал метод ведения журнала в Ruby Logging.logger, и у меня есть вопрос из источника на github относительно этого фрагмента кода:
logger = ::Logging::Logger.new(name)
logger.add_appenders appender
logger.additive = false
class << logger
def close
@appenders.each {|a| a.close}
h = ::Logging::Repository.instance.instance_variable_get :@h
h.delete(@name)
class << self; undef :close; end
end
end
Я понимаю, что class << logger открывает класс eigen / meta / singleton для объекта logger, чтобы добавить метод close, специфицирующий экземпляр. Тем не менее, я не совсем уверен, что делает «class << self; undef: close; end» и для какой цели. Может кто-нибудь сказать мне, что это значит? </p>