dohlog 0.1.7 → 0.1.8

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,22 @@
1
+ module DohLog
2
+
3
+ class AppendAcceptor
4
+ def initialize(acceptor, &pred)
5
+ @acceptor = acceptor
6
+ @pred = pred
7
+ end
8
+
9
+ def add(event)
10
+ extras_to_add = @pred.call(event)
11
+ if extras_to_add
12
+ event.extras.merge!(extras_to_add)
13
+ end
14
+ @acceptor.add(event)
15
+ end
16
+
17
+ def shutdown
18
+ @acceptor.shutdown
19
+ end
20
+ end
21
+
22
+ end
@@ -4,36 +4,24 @@ module DohLog
4
4
 
5
5
  class EmailAcceptor
6
6
  # required config fields are :from, :to, :server
7
- def initialize(config, &get_details)
7
+ def initialize(config)
8
8
  @config = config
9
- @get_details = get_details
10
9
  @msg_start = "From:#{config[:from]}\nTo:#{config[:to].join(', ')}\nContent-Type: text/plain\nSubject:"
11
10
  end
12
11
 
13
12
  def add(event)
14
- msg = "#{@msg_start}#{event.severity_text}: #{event.msg}\n\n#{event.summary}\n#{details_text}\n#{event.exception_text}"
13
+ msg = "#{@msg_start}#{event.severity_text}: #{event.msg}\n\n#{event.summary}\n#{event.exception_text}"
15
14
  Net::SMTP.start(@config[:server]) do |smtp|
16
15
  begin
17
16
  smtp.send_message(msg, @config[:from], @config[:to])
18
17
  rescue => excpt
19
- puts "dohlog EmailAcceptor send failed: #{excpt}"
18
+ $stderr.puts "DohLog EmailAcceptor send failed: #{excpt}"
20
19
  end
21
20
  end
22
21
  end
23
22
 
24
23
  def shutdown
25
24
  end
26
-
27
- private
28
- def details_text
29
- map = @get_details.call
30
- lines = []
31
- map.each_pair do |key, value|
32
- lines << "#{key}: #{value}"
33
- end
34
- lines.join("\n")
35
- end
36
-
37
25
  end
38
26
 
39
27
  end
@@ -3,10 +3,11 @@ require 'doh/log/severity'
3
3
  module DohLog
4
4
 
5
5
  class Event
6
- attr_accessor :severity, :msg, :location, :exception, :time
6
+ attr_accessor :severity, :msg, :location, :exception, :extras, :time
7
7
 
8
8
  def initialize(severity, msg, location = '', exception = nil)
9
9
  @severity, @msg, @location, @exception = severity, msg, location, exception
10
+ @extras = {}
10
11
  @time = Time.now
11
12
  end
12
13
 
@@ -33,7 +34,16 @@ class Event
33
34
  end
34
35
 
35
36
  def summary
36
- "#{datetime_text} [#{severity_text}] (#{location}) : #{msg}"
37
+ if @extras.empty?
38
+ extra_str = ''
39
+ else
40
+ extra_ary = []
41
+ @extras.each_pair do |key, value|
42
+ extra_ary << "#{key}: #{value}"
43
+ end
44
+ extra_str = "<#{extra_ary.join(', ')}> "
45
+ end
46
+ "#{datetime_text} [#{severity_text}] (#{location}) #{extra_str}: #{msg}"
37
47
  end
38
48
  end
39
49
 
@@ -1,14 +1,17 @@
1
1
  module DohLog
2
2
 
3
3
  class FilterAcceptor
4
- def initialize(acceptor, &pred)
4
+ def initialize(acceptor, else_acceptor = nil, &pred)
5
5
  @acceptor = acceptor
6
+ @else_acceptor = else_acceptor
6
7
  @pred = pred
7
8
  end
8
9
 
9
10
  def add(event)
10
11
  if @pred.call(event)
11
12
  @acceptor.add(event)
13
+ elsif @else_acceptor
14
+ @else_acceptor.add(event)
12
15
  end
13
16
  end
14
17
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dohlog
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.7
4
+ version: 0.1.8
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-08-20 00:00:00.000000000 Z
13
+ date: 2012-10-01 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: dohutil
@@ -37,6 +37,7 @@ extensions: []
37
37
  extra_rdoc_files:
38
38
  - MIT-LICENSE
39
39
  files:
40
+ - lib/doh/log/append_acceptor.rb
40
41
  - lib/doh/log/email_acceptor.rb
41
42
  - lib/doh/log/event.rb
42
43
  - lib/doh/log/filter_acceptor.rb