Guest User

Untitled

a guest
Jan 22nd, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.13 KB | None | 0 0
  1. class ColorFormatter < Log4r::Formatter
  2. attr_accessor :color, :label, :colors, :format_string
  3.  
  4. def colors
  5. @level_colors || [:cyan, :green, :yellow, :light_red, :red]
  6. end
  7.  
  8. def initialize(opts={})
  9. @depth = (opts[:depth] || 7 ).to_i
  10. @color = opts[:color] || true
  11. @format_string = opts[:format_string] || "%d [%9l] %m"
  12. @trace_format_string = opts[:trace_format_string] || " $FROM %T"
  13. @level_colors = opts[:level_colors] ||
  14. end
  15.  
  16. def format(event)
  17. event_color = colors[event.level -1]
  18. buff = @label ? sprintf(@format_string, Log4r::MaxLevelLength,
  19. Log4r::LNAMES[event.level]) : ""
  20. buff << format_object(event.data)
  21. buff << (event.tracer.nil? ? "" : "#from: #{event.tracer[0]}")
  22. buff << "\n"
  23. self.color ? buff.colorize(event_color) : buff
  24. end
  25.  
  26. def format_object(obj)
  27. if obj.kind_of? Exception
  28. return "Caught #{obj.class}: #{obj.message}\n\t" + obj.backtrace[0...@depth].join("\n\t")
  29. elsif obj.kind_of? String
  30. return obj
  31. else # inspect the object
  32. return "#{obj.class}: #{obj.inspect}"
  33. end
  34. end
Add Comment
Please, Sign In to add comment