class Console::Serialized::Logger

def call(subject = nil, *arguments, severity: UNKNOWN, &block)

def call(subject = nil, *arguments, severity: UNKNOWN, &block)
	message = {
		time: Time.now.iso8601,
		severity: severity,
	}
	
	if subject
		message[:subject] = subject
	end
	
	if arguments.any?
		message[:arguments] = arguments
	end
	
	if block_given?
		if block.arity.zero?
			message[:message] = yield
		else
			buffer = StringIO.new
			yield buffer
			message[:message] = buffer.string
		end
	end
	
	@io.puts(@format.dump(message))
end