ConsoleSourceConsoleCompatibleLogger

class Logger

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

Nested

Definitions

def initialize(subject, output = Console)

Create a new (compatible) logger.

Signature

parameter subject String

The subject of the log messages.

parameter output Console::Interface

The output interface.

Implementation

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

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

Log a message with the given severity.

Signature

parameter severity Integer

The severity of the message.

parameter message String

The message to log.

parameter progname String

The program name.

returns Boolean

True if the message was logged.

Implementation

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)

Format the severity.

Signature

parameter value Integer

The severity value.

returns Symbol

The formatted severity.

Implementation

def format_severity(value)
	super.downcase.to_sym
end