« Back to Index

Ruby Dynamic JSON Logger session via Lambda

View original Gist on GitHub

Ruby Dynamic JSON Logger session via Lambda.rb

class Logger
  define_method(:info) do |hash|
    return if hash.is_a? String
    @@session = -> { "n/a" } unless defined? @@session
    p @@session.()
    p hash
  end

  def self.session(fn)
    @@session = fn
  end
end

logger = Logger.new
logger.info "hello"

# At some point AFTER the logger instance has already been created
Logger.session -> { "beep" }

logger.info :foo => :bar, :baz => 123