logporter 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -45,7 +45,7 @@ class LogPorter::Server::Connection < EventMachine::Connection
45
45
 
46
46
  begin
47
47
  @client_port, @client_address = Socket.unpack_sockaddr_in(get_peername)
48
- puts "New client: #{@client_address}:#{@client_port}"
48
+ @server.logger.info "New client: #{@client_address}:#{@client_port}"
49
49
  rescue => e
50
50
  p e
51
51
  end
@@ -104,8 +104,8 @@ class LogPorter::Server::Connection < EventMachine::Connection
104
104
  def stats
105
105
  @start ||= Time.now
106
106
  @count += 1
107
- if @count % 50000 == 0
108
- puts "Rate: #{@count / (Time.now - @start)}"
107
+ if (Time.now - @start) > 10
108
+ @server.logger.info "Rate: #{@count / (Time.now - @start)}"
109
109
  @start = Time.now
110
110
  @count = 0
111
111
  end
@@ -1,6 +1,7 @@
1
1
  require "logporter/namespace"
2
2
  require "logporter/server/connection"
3
3
  require "logporter/server/defaulthandler"
4
+ require "logger"
4
5
 
5
6
  class LogPorter::Server
6
7
 
@@ -23,6 +24,9 @@ class LogPorter::Server
23
24
  # This is a hash
24
25
  attr_reader :attributes
25
26
 
27
+ # The logger object
28
+ attr_accessor :logger
29
+
26
30
  # Create a new server to listen with
27
31
  # 'options' is a hash of:
28
32
  #
@@ -31,6 +35,7 @@ class LogPorter::Server
31
35
  # :wire => the wire format (:raw, :syslog)
32
36
  # :handler => the handler instance. Must respond to 'receive_event'
33
37
  def initialize(options)
38
+ @logger = Logger.new(STDOUT)
34
39
  @network = options[:net]
35
40
  @port = options.delete(:port) || 514
36
41
  @wire = options.delete(:wire) || :raw
@@ -57,25 +62,32 @@ class LogPorter::Server
57
62
  # s.start
58
63
  #
59
64
  # EventMachine.run()
60
- EventMachine.next_tick do
61
- puts "Starting #{@network}/#{@port}"
62
- begin
63
- case @network
64
- when :udp; start_udp_server
65
- when :tcp; start_tcp_server
66
- when :tls; start_tcp_server # tls is handled by tcp.
67
- else
68
- raise "Unknown network '#{@network}' expected :udp, :tcp, or :tls"
69
- end
70
- rescue => e
71
- if @handler.respond_to?(:receive_exception)
72
- @handler.receive_exception(e)
65
+ if EventMachine.reactor_running?
66
+ _start
67
+ else
68
+ EventMachine.next_tick { _start }
69
+ end
70
+ end # def start
71
+
72
+ private
73
+ def _start
74
+ @logger.info "Starting #{@network}/#{@port}"
75
+ begin
76
+ case @network
77
+ when :udp; start_udp_server
78
+ when :tcp; start_tcp_server
79
+ when :tls; start_tcp_server # tls is handled by tcp.
73
80
  else
74
- raise e
75
- end
81
+ raise "Unknown network '#{@network}' expected :udp, :tcp, or :tls"
82
+ end
83
+ rescue => e
84
+ if @handler.respond_to?(:receive_exception)
85
+ @handler.receive_exception(e, self)
86
+ else
87
+ raise e
76
88
  end
77
89
  end
78
- end # def start
90
+ end # def _start
79
91
 
80
92
  private
81
93
  def start_udp_server
@@ -93,10 +105,11 @@ class LogPorter::Server
93
105
  public
94
106
  def receive_event(event, client_addr, client_port)
95
107
  @handler.receive_event(event, self, client_addr, client_port)
96
- end
108
+ end # def receive_event
97
109
 
98
110
  public
99
111
  def stop
112
+ @logger.info "Stopping #{@network}/#{@port}"
100
113
  case @network
101
114
  when :tcp
102
115
  EventMachine::stop_server(@socket)
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logporter
3
3
  version: !ruby/object:Gem::Version
4
- hash: 29
4
+ hash: 27
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 1
10
- version: 0.0.1
9
+ - 2
10
+ version: 0.0.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Jordan Sissel
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-03-21 00:00:00 -07:00
18
+ date: 2011-04-04 00:00:00 -07:00
19
19
  default_executable:
20
20
  dependencies: []
21
21