class Console::Serialized::Logger
def call(subject = nil, *arguments, severity: UNKNOWN, **options, &block)
def call(subject = nil, *arguments, severity: UNKNOWN, **options, &block) record = { time: Time.now.iso8601, severity: severity, class: subject.class, oid: subject.object_id, pid: Process.pid, } if subject record[:subject] = subject end if arguments.any? record[:arguments] = arguments end if options.any? record[:options] = options end if block_given? if block.arity.zero? record[:message] = yield else buffer = StringIO.new yield buffer record[:message] = buffer.string end end @io.puts(self.dump(record)) end
def dump(record)
def dump(record) @format.dump(record) end
def initialize(io = $stderr, format: JSON, verbose: false, **options)
def initialize(io = $stderr, format: JSON, verbose: false, **options) @io = io @start = Time.now @format = format @verbose = verbose end
def verbose!(value = true)
def verbose!(value = true) @verbose = true end