class Console::Compatible::Logger

A compatible interface for {::Logger} which can be used with {Console}.

def add(severity, message = nil, progname = nil)

@returns [Boolean] True if the message was logged.
@parameter progname [String] The program name.
@parameter message [String] The message to log.
@parameter severity [Integer] The severity of the message.

Log a message with the given severity.
def add(severity, message = nil, progname = nil)
	severity ||= UNKNOWN
	
	if @logdev.nil? or severity < level
		return true
	end
	
	if progname.nil?
		progname = @progname
	end
	
	if message.nil?
		if block_given?
			message = yield
		else
			message = progname
			progname = @progname
		end
	end
	
	@logdev.call(
		progname, message,
		severity: format_severity(severity)
	)
	
	return true
end

def format_severity(value)

@returns [Symbol] The formatted severity.
@parameter value [Integer] The severity value.

Format the severity.
def format_severity(value)
	super.downcase.to_sym
end

def initialize(subject, output = Console)

@parameter output [Console::Interface] The output interface.
@parameter subject [String] The subject of the log messages.

Create a new (compatible) logger.
def initialize(subject, output = Console)
	super(nil)
	
	@progname = subject
	@logdev = LogDevice.new(subject, output)
end