lib/rsmp/logger.rb in rsmp-0.1.39 vs lib/rsmp/logger.rb in rsmp-0.1.40

- old
+ new

@@ -5,10 +5,11 @@ def initialize settings={} defaults = { 'active'=>false, 'path'=>nil, + 'stream'=>nil, 'author'=>false, 'color'=>true, 'site_id'=>true, 'component'=>false, 'level'=>false, @@ -31,11 +32,13 @@ setup_output_destination end def setup_output_destination - if @settings['path'] + if @settings['stream'] + @stream = @settings['stream'] + elsif @settings['path'] @stream = File.open(@settings['path'],'a') # appending else @stream = $stdout end end @@ -83,24 +86,23 @@ end def colorize level, str if @settings["color"] == false || @settings["color"] == nil str - elsif @settings["color"] == true - case level - when :error - str.colorize(:red) - when :warning - str.colorize(:light_yellow) - when :not_acknowledged - str.colorize(:cyan) - when :log - str.colorize(:light_blue) - when :statistics - str.colorize(:light_black) - when :test - str.colorize(:light_magenta) + elsif @settings["color"] == true || @settings["color"].is_a?(Hash) + colors = { + 'info' => 'white', + 'log' => 'light_blue', + 'test' => 'light_magenta', + 'statistics' => 'light_black', + 'not_acknowledged' => 'cyan', + 'warning' => 'light_yellow', + 'error' => 'red' + } + colors.merge! @settings["color"] if @settings["color"].is_a?(Hash) + if colors[level.to_s] + str.colorize colors[level.to_s].to_sym else str end else if level == :nack || level == :warning || level == :error @@ -109,10 +111,10 @@ str.colorize @settings["color"] end end end - def log item, force:false + def log item, force:false if output?(item, force) output item[:level], build_output(item) end end \ No newline at end of file