Class: Whisper::Logger
- Inherits:
-
Object
- Object
- Whisper::Logger
- Defined in:
- lib/whisper/common.rb
Overview
quick replacement for Ruby’s crappy Logger class
Constant Summary collapse
- LOG_LEVELS =
%w(debug info warn error fatal)
Class Attribute Summary collapse
-
.instance ⇒ Object
Returns the value of attribute instance.
Instance Method Summary collapse
- #format_message(level, msg, where) ⇒ Object
-
#initialize(stream, level) ⇒ Logger
constructor
A new instance of Logger.
- #send_message(level, msg, where = nil) ⇒ Object
Constructor Details
#initialize(stream, level) ⇒ Logger
Returns a new instance of Logger.
165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 |
# File 'lib/whisper/common.rb', line 165 def initialize stream, level level = level.to_s raise ArgumentError, "log level must be one of #{LOG_LEVELS.join ', '}" unless LOG_LEVELS.include? level @stream = stream @level = level @level_index = LOG_LEVELS.index(@level) LOG_LEVELS[0 ... @level_index].each do |m| self.class.instance_eval do define_method(m) { |s, where=nil| } define_method("#{m}?") { false } define_method("if_#{m}?") { |&b| } end end LOG_LEVELS[@level_index .. -1].each do |m| self.class.instance_eval do define_method(m) { |s, where=nil| m, s, where } define_method("#{m}?") { true } define_method("if_#{m}?") { |&b| b.call } end end Logger.instance ||= self end |
Class Attribute Details
.instance ⇒ Object
Returns the value of attribute instance.
163 164 165 |
# File 'lib/whisper/common.rb', line 163 def instance @instance end |
Instance Method Details
#format_message(level, msg, where) ⇒ Object
197 198 199 200 |
# File 'lib/whisper/common.rb', line 197 def level, msg, where where_s = where.nil? ? "" : "(#{where.sub("Whisper::", "")}) " "[#{Time.now}] #{where_s}#{level.upcase}: #{msg}\n" end |
#send_message(level, msg, where = nil) ⇒ Object
191 192 193 194 195 |
# File 'lib/whisper/common.rb', line 191 def level, msg, where=nil m = level, msg, where @stream.print m @stream.flush end |