Class: Console::Logger

Inherits:
Object
  • Object
show all
Extended by:
Fiber::Local
Defined in:
lib/console/logger.rb

Constant Summary collapse

DEFAULT_LEVEL =
1

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(output, **options) ⇒ Logger

Returns a new instance of Logger.



69
70
71
# File 'lib/console/logger.rb', line 69

def initialize(output, **options)
	super(output, **options)
end

Class Method Details

.default_log_level(env = ENV) ⇒ Object

Set the default log level based on ‘$DEBUG` and `$VERBOSE`. You can also specify CONSOLE_LEVEL=debug or CONSOLE_LEVEL=info in environment. mislav.net/2011/06/ruby-verbose-mode/ has more details about how it all fits together.



37
38
39
40
41
42
43
44
45
46
47
# File 'lib/console/logger.rb', line 37

def self.default_log_level(env = ENV)
	if level = (env['CONSOLE_LEVEL'] || env['CONSOLE_LOG_LEVEL'])
		LEVELS[level.to_sym] || level.to_i
	elsif $DEBUG
		DEBUG
	elsif $VERBOSE.nil?
		WARN
	else
		INFO
	end
end

.default_logger(output, verbose: self.verbose?, level: self.default_log_level) ⇒ Object



54
55
56
57
58
59
60
61
# File 'lib/console/logger.rb', line 54

def self.default_logger(output, verbose: self.verbose?, level: self.default_log_level)
	terminal = Terminal::Logger.new(output, verbose: verbose)
	
	logger = self.new(terminal, verbose: verbose, level: level)
	Resolver.default_resolver(logger)
	
	return logger
end

.localObject



63
64
65
# File 'lib/console/logger.rb', line 63

def self.local
	self.default_logger($stderr)
end

.verbose?(env = ENV) ⇒ Boolean

Controls verbose output using ‘$VERBOSE`.

Returns:

  • (Boolean)


50
51
52
# File 'lib/console/logger.rb', line 50

def self.verbose?(env = ENV)
	!$VERBOSE.nil? || env['CONSOLE_VERBOSE']
end

Instance Method Details

#failure(subject, exception, *arguments, &block) ⇒ Object



87
88
89
# File 'lib/console/logger.rb', line 87

def failure(subject, exception, *arguments, &block)
	fatal(subject, *arguments, Event::Failure.new(exception), &block)
end

#measure(subject, name = "block", **tags, &block) ⇒ Object



77
78
79
80
81
82
83
84
85
# File 'lib/console/logger.rb', line 77

def measure(subject, name = "block", **tags, &block)
	measure = Measure.new(self, subject, **tags)
	
	if block_given?
		return measure.duration(name, &block)
	else
		return measure
	end
end

#progress(subject, total, **options) ⇒ Object



73
74
75
# File 'lib/console/logger.rb', line 73

def progress(subject, total, **options)
	Progress.new(self, subject, total, **options)
end