logporter 0.1.1 → 0.1.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.
@@ -1,4 +1,5 @@
1
1
  require "logporter/namespace"
2
+ require "time" # for Time.strptime
2
3
 
3
4
  module LogPorter::Protocol::Syslog3164
4
5
  def syslog3164_init
@@ -32,7 +33,9 @@ module LogPorter::Protocol::Syslog3164
32
33
  if m
33
34
  # RFC3164 section 4.3.3 No PRI or Unidentifiable PRI
34
35
  event.pri = m[1] || "13"
35
- event.timestamp = m[2]
36
+
37
+ # TODO(sissel): DateTime is a very slow library, consider alternatives?
38
+ event.timestamp = Time.strptime(m[2], "%b %d %H:%M:%S")
36
39
  event.hostname = m[3]
37
40
  event.message = m[4]
38
41
  return true
@@ -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[:port] || 514
36
41
  @wire = options[: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)
@@ -46,6 +46,8 @@ class LogPorter::Server::Connection < EventMachine::Connection
46
46
  raise "Unsupported protocol #{@server.protocol}"
47
47
  end
48
48
 
49
+ #@server.logger.error "Exception: #{e.inspect}"
50
+ #@server.logger.error "Backtrace: #{e.backtrace}"
49
51
  if @server.network != :udp
50
52
  peer = get_peername
51
53
  if peer.is_a?(Array) # new em-netty::Connection.get_peername
@@ -115,8 +117,8 @@ class LogPorter::Server::Connection < EventMachine::Connection
115
117
  def stats
116
118
  @start ||= Time.now
117
119
  @count += 1
118
- if @count % 50000 == 0
119
- puts "Rate: #{@count / (Time.now - @start)}"
120
+ if (Time.now - @start) > 10
121
+ @server.logger.info "Rate: #{@count / (Time.now - @start)}"
120
122
  @start = Time.now
121
123
  @count = 0
122
124
  end
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: 25
4
+ hash: 31
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 1
10
- version: 0.1.1
9
+ - 2
10
+ version: 0.1.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-04-18 00:00:00 -07:00
18
+ date: 2011-05-05 00:00:00 -07:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency