Sha256: 0df89fbfb619cee6e4ba6aca97a43071adc5319c6dd41100314ca006cabdb629

Contents?: true

Size: 848 Bytes

Versions: 1

Compression:

Stored size: 848 Bytes

Contents

require 'after_do'
require 'logger'

module Kamerling module Logging
  module_function

  def log_to logger = Logger.new($stdout)
    log_dispatcher_to logger
    log_server_to     logger
  end

  class << self
    private

    def log_dispatcher_to logger
      NetDispatcher.singleton_class.extend AfterDo
      NetDispatcher.singleton_class.before :dispatch do |addr, bytes|
        logger.debug "sent #{addr} #{bytes}"
      end
    end

    def log_server_to logger
      Server::Sock.extend AfterDo
      Server::Sock.before(:start) { |srv| logger.info "start #{srv.addr}" }
      Server::Sock.after(:stop)   { |srv| logger.info "stop #{srv.addr}"  }
      Server::Sock.before :handle do |input, client_addr|
        logger.info "connect #{client_addr}"
        logger.debug "received #{client_addr} #{input}"
      end
    end
  end
end end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
kamerling-0.0.2 lib/kamerling/logging.rb