lib/yard/logging.rb in yard-0.2.3.5 vs lib/yard/logging.rb in yard-0.4.0

- old
+ new

@@ -1,29 +1,46 @@ require 'logger' module YARD + # Handles console logging for info, warnings and errors. + # Uses the stdlib Logger class in Ruby for all the backend logic. class Logger < ::Logger + # The logger instance + # @return [Logger] the logger instance def self.instance(pipe = STDERR) @logger ||= new(pipe) end + # Creates a new logger def initialize(*args) super self.level = INFO self.formatter = method(:format_log) end + # Changes the debug level to DEBUG if $DEBUG is set + # and writes a debugging message. def debug(*args) self.level = DEBUG if $DEBUG super end + # Sets the logger level for the duration of the block + # + # @example + # log.enter_level(Logger::ERROR) do + # YARD.parse_string "def x; end" + # end + # @param [Fixnum] new_level the logger level for the duration of the block. + # values can be found in Ruby's Logger class. + # @yield the block with the logger temporarily set to +new_level+ def enter_level(new_level = level, &block) old_level, self.level = level, new_level yield self.level = old_level end + # Log format (from Logger implementation) def format_log(sev, time, prog, msg) "[#{sev.downcase}]: #{msg}\n" end end end