Sha256: a509ea50efa79d7958908bde44a63f3b0a02593d97db647d67a6320157634bff
Contents?: true
Size: 1.57 KB
Versions: 4
Compression:
Stored size: 1.57 KB
Contents
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 attr_accessor :show_backtraces # 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.show_backtraces = false self.level = WARN 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 def backtrace(exc) return unless show_backtraces error "#{exc.class.class_name}: #{exc.message}" error "Stack trace:" + exc.backtrace[0..5].map {|x| "\n\t#{x}" }.join + "\n" 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
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
yard-0.5.2 | lib/yard/logging.rb |
yard-0.5.1p1 | lib/yard/logging.rb |
yard-0.5.1 | lib/yard/logging.rb |
yard-0.5.0 | lib/yard/logging.rb |