lib/itamae-mitsurin/logger.rb in itamae-mitsurin-0.9 vs lib/itamae-mitsurin/logger.rb in itamae-mitsurin-0.10

- old
+ new

@@ -46,12 +46,27 @@ end %w!debug info warn error fatal unknown!.each do |level| module_eval(<<-EOC, __FILE__, __LINE__ + 1) def #{level}(msg) - super(" " * indent_depth + msg) + super(indent_msg(msg)) end EOC + end + + private + + def indent_msg(msg) + spaces = " " * indent_depth + case msg + when ::String + "#{spaces}#{msg}" + when ::Exception + "#{spaces}#{msg.message} (#{msg.class})\n" << + (msg.backtrace || []).map {|f| "#{spaces}#{f}"}.join("\n") + else + "#{spaces}#{msg.inspect}" + end end end class Formatter attr_accessor :colored