Class: YARD::Logger
- Inherits:
-
Logger
- Object
- Logger
- YARD::Logger
- Defined in:
- lib/yard/logging.rb
Overview
Handles console logging for info, warnings and errors. Uses the stdlib Logger class in Ruby for all the backend logic.
Instance Attribute Summary collapse
-
#show_backtraces ⇒ Object
Returns the value of attribute show_backtraces.
Class Method Summary collapse
-
.instance(pipe = STDERR) ⇒ Logger
The logger instance.
Instance Method Summary collapse
-
#backtrace(exc) ⇒ void
Prints the backtrace
exc
to the logger as error data. -
#debug(*args) ⇒ Object
Changes the debug level to DEBUG if $DEBUG is set and writes a debugging message.
-
#enter_level(new_level = level) { ... } ⇒ Object
Sets the logger level for the duration of the block.
-
#initialize(*args) ⇒ Logger
constructor
Creates a new logger.
Constructor Details
#initialize(*args) ⇒ Logger
Creates a new logger
16 17 18 19 20 21 |
# File 'lib/yard/logging.rb', line 16 def initialize(*args) super self.show_backtraces = true self.level = WARN self.formatter = method(:format_log) end |
Instance Attribute Details
#show_backtraces ⇒ Object
Returns the value of attribute show_backtraces.
7 8 9 |
# File 'lib/yard/logging.rb', line 7 def show_backtraces @show_backtraces end |
Class Method Details
.instance(pipe = STDERR) ⇒ Logger
The logger instance
11 12 13 |
# File 'lib/yard/logging.rb', line 11 def self.instance(pipe = STDERR) @logger ||= new(pipe) end |
Instance Method Details
#backtrace(exc) ⇒ void
This method returns an undefined value.
Prints the backtrace exc
to the logger as error data.
34 35 36 37 38 39 |
# File 'lib/yard/logging.rb', line 34 def backtrace(exc) return unless show_backtraces error "#{exc.class.class_name}: #{exc.}" error "Stack trace:" + exc.backtrace[0..5].map {|x| "\n\t#{x}" }.join + "\n" end |
#debug(*args) ⇒ Object
Changes the debug level to DEBUG if $DEBUG is set and writes a debugging message.
25 26 27 28 |
# File 'lib/yard/logging.rb', line 25 def debug(*args) self.level = DEBUG if $DEBUG super end |
#enter_level(new_level = level) { ... } ⇒ Object
Sets the logger level for the duration of the block
50 51 52 53 54 |
# File 'lib/yard/logging.rb', line 50 def enter_level(new_level = level, &block) old_level, self.level = level, new_level yield self.level = old_level end |