Ruby singleton for logging
You might be better off just using a module with some static methods, e.g.:

module Vlogger
  class &lt;&lt; self
    def logger
      @logger ||= ActiveSupport::TaggedLogging.new(Logger.new(STDOUT))
    end

    def with_context(tags, message)
      logger.tagged(*tags) { logger.info message }
    end
  end
end


Add attribute access as needed.

Now you can simply call Vlogger.with_context directly when you need it without having to use instance or otherwise keeping a reference to things elsewhere.

class Worker
  def perform
    Vlogger.with_context(["tag1"], "Started work")
    Provider.say_hello
  end
end

class Provider
  def self.say_hello
    Vlogger.with_context(["tag2"], "hello")
  end
end


It's an option, at least.