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