lib/protobuf/common/logger.rb in protobuf-1.4.2 vs lib/protobuf/common/logger.rb in protobuf-2.0.0.rc1

- old
+ new

@@ -1,56 +1,56 @@ require 'logger' module Protobuf class Logger < ::Logger - + class << self attr_accessor :file, :level # Stub out the log methods for Protobuf::Logger as singleton methods [:debug, :info, :warn, :error, :fatal, :any, :add, :log].each do |m| define_method(m) do |*params, &block| instance && instance.__send__(m, *params, &block) end end end - + # One-line file/level configuration def self.configure(options) self.file = options.fetch(:file, false) self.level = options.fetch(:level, false) end - + # Use to reset the instance def self.reset_device! self.file = self.level = @__instance = nil end - + # Singleton instance def self.instance @__instance ||= begin log = nil - + if @file && @level log = new(self.file) log.level = self.level end - + log end end - - # + + # # LogMethods module for log method including, e.g.: - # + # # class MyClass # include Protobuf::Logger::LogMethods # ... # end - # + # # Produce a module to allow "include" in other classes to avoid # cluttering the namespace of the including class with the other methods defined above - # + # module LogMethods [:debug, :info, :warn, :error, :fatal, :any, :add, :log].each do |m| define_method("log_#{m}") do |*params, &block| Protobuf::Logger.__send__(m, *params, &block) end