Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ### BELINGS IN lib/logger_proxy.rb
- ##############
- ### Logger ###
- ##############
- require 'logger'
- class Logger
- def flush(*args)
- return
- end
- def <<(string = nil)
- self.info(string)
- end
- alias :push :<<
- %w(debug info warn error fatal).each do |level|
- eval <<-"end;"
- def #{level}!(*args)
- send(:#{level}, *args)
- end
- end;
- end
- end
- ####################
- ### Logger Proxy ###
- ####################
- class LoggerProxy
- attr_accessor :logger
- def initialize(*args)
- @logger = self.class.initializer.call(self.class.logger, args)
- end
- def method_missing(name, *args)
- self.logger.send(name, *args)
- end
- class << self
- attr_accessor :logger, :initializer
- def setup(logger, &initializer)
- self.logger = logger
- self.initializer = initializer
- end
- end
- end
- #####################
- ### Install Proxy ###
- #####################
- # Sets the Proxy's logger to the default Merb::Logger
- LoggerProxy.logger = Merb.send(:remove_const, :Logger)
- # Merb::Logger.new(Merb.file, Merb::Config[:level], Merb::Config[:delimiter], Merb::Config[:auto_flush])
- LoggerProxy.initializer = lambda do |logger, (file, level, delimiter, auto_flush)|
- logger.new(file, level, delimiter, auto_flush)
- end
- # Sets the Merb::Logger to the LoggerProxy
- Merb::Logger = LoggerProxy
Add Comment
Please, Sign In to add comment