releaseable 0.0.8 → 0.0.9

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.
Files changed (3) hide show
  1. data/VERSION +1 -1
  2. data/lib/releaseable/extensions.rb +40 -17
  3. metadata +2 -2
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.8
1
+ 0.0.9
@@ -1,9 +1,10 @@
1
1
  require 'logger'
2
2
  require 'logglier'
3
+ require 'stringio'
3
4
  require 'java'
4
5
 
5
6
  # Selectively silence verbose JRuby warnings
6
- def suppress_all_warnings
7
+ def suppress_warnings
7
8
  old_verbose = $VERBOSE
8
9
  begin
9
10
  $VERBOSE = nil
@@ -15,7 +16,7 @@ def suppress_all_warnings
15
16
  end
16
17
 
17
18
  # Avoid OpenSSL failures
18
- suppress_all_warnings do
19
+ suppress_warnings do
19
20
  OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE
20
21
  end
21
22
 
@@ -27,7 +28,7 @@ class Logger
27
28
  :json => '62a8ef41-fd80-460f-a6f7-e45f232dd1d8',
28
29
  :aux => '207f124e-9de6-434f-b100-af1ac3585089', }
29
30
 
30
- attr_accessor :config
31
+ attr_accessor :config, :logdev
31
32
 
32
33
  # Alarm sound to get my attention
33
34
  def self.sound_alarm beeps = 3
@@ -42,21 +43,39 @@ class Logger
42
43
  self.class.sound_alarm beeps
43
44
  end
44
45
 
46
+ # Trace errors in json format
47
+ def trace error
48
+ if @fatalities
49
+ hash = error.is_a?(Hash) ? error : {:msg => error}
50
+ @fatalities.add(hash[:severity] || Logger::UNKNOWN) do
51
+ hash.merge :tag => @config[:tag]
52
+ end
53
+ end
54
+ end
55
+
56
+ # Finalize logger
57
+ def finalize
58
+ if @fatalities
59
+ trace :failsafe => @config[:failsafe].string if @config[:failsafe].respond_to? :string
60
+ sleep 1
61
+ @fatalities.logdev.dev.deliverer.kill
62
+ end
63
+ close
64
+ end
65
+
45
66
  alias old_fatal fatal
46
67
 
47
- # Extended handler for fatal errors
48
68
  def fatal *args
49
- if @config && @config[:fatal]
69
+ if @fatalities
50
70
  entry = args.first
51
71
  case entry
52
72
  when Exception
53
- @config[:fatal].fatal :tag => @config[:tag],
54
- :error => entry.class,
55
- :msg => entry.message,
56
- :backtrace => entry.backtrace.join(', ')
73
+ trace :severity => Logger::FATAL,
74
+ :error => entry.class,
75
+ :msg => entry.message,
76
+ :backtrace => (entry.backtrace || []).join(', ')
57
77
  else
58
- @config[:fatal].info :tag => @config[:tag],
59
- :msg => "#{args.join(', ')}"
78
+ trace :severity => Logger::INFO, :msg => "#{args.join(', ')}"
60
79
  old_fatal *args
61
80
  end
62
81
  else
@@ -64,7 +83,7 @@ class Logger
64
83
  end
65
84
  end
66
85
 
67
- # Extended configuration for Logger
86
+ # Extended configuration for Logger
68
87
  def configure config={}, &formatter
69
88
  @config = (config[:log] || config).dup
70
89
  @config[:beeps] ||= 0
@@ -82,11 +101,14 @@ class Logger
82
101
  @config[:input]
83
102
  end
84
103
  domain ||= @config[:domain] || 'https://logs.loggly.com'
85
- @config[:fatal] ||= Logglier.new "#{domain}/inputs/#{input}",
86
- :read_timeout => 3,
87
- :open_timeout => 3,
88
- :threaded => true,
89
- :format => :json
104
+ @config[:failsafe] ||= StringIO.new("") # $stderr
105
+
106
+ @fatalities ||= Logglier.new "#{domain}/inputs/#{input}",
107
+ :failsafe => @config[:failsafe],
108
+ :read_timeout => 10, # defaults to 120
109
+ :open_timeout => 10, # defaults to 120
110
+ :threaded => true,
111
+ :format => :json
90
112
  end
91
113
 
92
114
  self.level = @config[:level] || Logger::INFO
@@ -94,4 +116,5 @@ class Logger
94
116
  "#{time.strftime(@config[:time_format])} #{msg}\n"
95
117
  end
96
118
  end
119
+
97
120
  end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: releaseable
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.0.8
5
+ version: 0.0.9
6
6
  platform: ruby
7
7
  authors:
8
8
  - arvicco
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2012-01-29 00:00:00 Z
13
+ date: 2012-01-30 00:00:00 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: bundler