class Console::Terminal::Logger

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

def call(subject = nil, *arguments, name: nil, severity: UNKNOWN, **options, &block)
	prefix = build_prefix(name || severity.to_s)
	indent = " " * prefix.size
	
	buffer = Buffer.new("#{indent}| ")
	
	format_subject(severity, prefix, subject, buffer)
	
	arguments.each do |argument|
		format_argument(argument, buffer)
	end
	
	if block_given?
		if block.arity.zero?
			format_argument(yield, buffer)
		else
			yield(buffer, @terminal)
		end
	end
	
	if options&.any?
		format_options(options, buffer)
	end
	
	@io.write buffer.string
end