Sha256: b06ac3e3bb782e24cb682ecc8052141d44a8452d20f016a413808accc8ea28a4

Contents?: true

Size: 1006 Bytes

Versions: 1

Compression:

Stored size: 1006 Bytes

Contents

module RemoteLogger

  # Subclass of RemoteLogger::Logger communicating via DRb protocol
  class RingyLogger < Logger

    def self.start(name = LOGGER_NAME, options = {})
      # Adding some security (disable remote eval)
      $SAFE = 1

      # Creating logger instance
      logger = RemoteLogger::Logger.new options

      DRb.start_service

      # Raising new RingyDingy service
      logger.info "#{name}: Initializing service..." if options[:verbose]
      RingyDingy.new(logger, name.to_sym).run
      logger.info "#{name}: Service started" if options[:verbose]

      DRb.thread.join

      # Never reaches this point...
      logger.info "#{name}: Service finished" if options[:verbose]
    end

    def self.find(name = LOGGER_NAME, options = {})
      DRb.start_service

      # Connecting to Ring server
      ring_server = Rinda::RingFinger.primary

      # Requesting logger service by name
      service = ring_server.read [:name, name.to_sym, nil, nil]
      service[2]
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
remote_logger-0.0.4 lib/remote_logger/ringy_logger.rb