From 03ce1c3cecc03d6f5ba92f1d9350bd26035a0522 Mon Sep 17 00:00:00 2001 From: geemus Date: Thu, 1 Sep 2011 17:48:43 -0500 Subject: [PATCH] [core] prototype logger --- lib/fog/core.rb | 1 + lib/fog/core/logger.rb | 30 ++++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 lib/fog/core/logger.rb diff --git a/lib/fog/core.rb b/lib/fog/core.rb index 77988ef00..91d970e54 100644 --- a/lib/fog/core.rb +++ b/lib/fog/core.rb @@ -25,6 +25,7 @@ require 'fog/core/deprecation' require 'fog/core/errors' require 'fog/core/hmac' require 'fog/core/json' +require 'fog/core/logger' require 'fog/core/model' require 'fog/core/mock' require 'fog/core/parser' # FIXME: would be better to only load when nokogiri is required diff --git a/lib/fog/core/logger.rb b/lib/fog/core/logger.rb new file mode 100644 index 000000000..7053f9f71 --- /dev/null +++ b/lib/fog/core/logger.rb @@ -0,0 +1,30 @@ +module Fog + class Logger + + @channels = { + :warning => ::STDOUT + } + + def self.debug(message) + self.write(:debug, "[light_black][DEBUG] #{message}[/]") + end + + def self.warning(message) + self.write(:warning, "[yellow][WARNING] #{message}[/]") + end + + def self.write(key, value) + if channel = @channels[key] + value.gsub(Formatador::INDENT_REGEX, '') + message = if channel.tty? + value.gsub(Formatador::PARSE_REGEX) { "\e[#{Formatador::STYLES[$1.to_sym]}m" }.gsub(Formatador::INDENT_REGEX, '') + else + value.gsub(Formatador::PARSE_REGEX, '').gsub(Formatador::INDENT_REGEX, '') + end + channel.write(message) + end + nil + end + + end +end