log4r-exceptionable 0.6.0 → 0.7.0
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.
- data/CHANGELOG +5 -0
- data/README.md +5 -0
- data/lib/log4r-exceptionable/configuration.rb +6 -1
- data/lib/log4r-exceptionable/rack_failure_handler.rb +1 -1
- data/lib/log4r-exceptionable/resque_failure_handler.rb +1 -1
- data/lib/log4r-exceptionable/version.rb +1 -1
- data/spec/configuration_spec.rb +25 -0
- data/spec/rack_failure_handler_spec.rb +29 -15
- data/spec/resque_failure_handler_spec.rb +22 -9
- metadata +2 -2
data/CHANGELOG
CHANGED
data/README.md
CHANGED
@@ -33,6 +33,11 @@ Add to some initializer code:
|
|
33
33
|
#
|
34
34
|
# config.use_source_logger = false
|
35
35
|
|
36
|
+
# Log at the given log level
|
37
|
+
# optional - defaults to :fatal
|
38
|
+
#
|
39
|
+
# config.log_level = :error
|
40
|
+
|
36
41
|
# A whitelist of the context keys to include when logging.
|
37
42
|
# If this is set, _only_these keys will show up.
|
38
43
|
# optional - defaults to nil, so all keys get included
|
@@ -9,6 +9,8 @@ module Log4rExceptionable
|
|
9
9
|
attr_accessor :rack_failure_logger, :resque_failure_logger
|
10
10
|
# Allows one to force use of default loggers by setting to false
|
11
11
|
attr_accessor :use_source_logger
|
12
|
+
# The level to log exceptions
|
13
|
+
attr_accessor :log_level
|
12
14
|
# whitelist of context keys (e.g. keys in rack env) to include in log4r context when logging
|
13
15
|
attr_accessor :context_inclusions
|
14
16
|
# blacklist of context keys (e.g. keys in rack env) to exclude in log4r context when logging
|
@@ -17,6 +19,7 @@ module Log4rExceptionable
|
|
17
19
|
|
18
20
|
# default values
|
19
21
|
self.use_source_logger = true
|
22
|
+
self.log_level = :fatal
|
20
23
|
|
21
24
|
def self.configure
|
22
25
|
yield self
|
@@ -35,7 +38,9 @@ module Log4rExceptionable
|
|
35
38
|
|
36
39
|
self.context_inclusions = Set.new(self.context_inclusions) if self.context_inclusions
|
37
40
|
self.context_exclusions = Set.new(self.context_exclusions) if self.context_exclusions
|
38
|
-
|
41
|
+
|
42
|
+
raise "Invalid log level: #{self.log_level}" unless Log4r::LNAMES.include?(self.log_level.to_s.upcase)
|
43
|
+
self.log_level = self.log_level.to_sym
|
39
44
|
end
|
40
45
|
|
41
46
|
def self.set_logger(accessor)
|
data/spec/configuration_spec.rb
CHANGED
@@ -60,6 +60,31 @@ describe Log4rExceptionable::Configuration do
|
|
60
60
|
Log4rExceptionable::Configuration.rack_failure_logger.should == Log4r::Logger['otherlogger']
|
61
61
|
end
|
62
62
|
|
63
|
+
it "should raise if invalid log_level" do
|
64
|
+
lambda {
|
65
|
+
Log4rExceptionable::Configuration.configure do |config|
|
66
|
+
config.rack_failure_logger = "mylogger"
|
67
|
+
config.log_level = nil
|
68
|
+
end
|
69
|
+
}.should raise_error("Invalid log level: ")
|
70
|
+
|
71
|
+
lambda {
|
72
|
+
Log4rExceptionable::Configuration.configure do |config|
|
73
|
+
config.rack_failure_logger = "mylogger"
|
74
|
+
config.log_level = :foobar
|
75
|
+
end
|
76
|
+
}.should raise_error("Invalid log level: foobar")
|
77
|
+
end
|
78
|
+
|
79
|
+
it "should allow setting valid log_level" do
|
80
|
+
lambda {
|
81
|
+
Log4rExceptionable::Configuration.configure do |config|
|
82
|
+
config.rack_failure_logger = "mylogger"
|
83
|
+
config.log_level = :debug
|
84
|
+
end
|
85
|
+
}.should_not raise_error
|
86
|
+
end
|
87
|
+
|
63
88
|
end
|
64
89
|
|
65
90
|
end
|
@@ -64,16 +64,17 @@ describe Log4rExceptionable::RackFailureHandler do
|
|
64
64
|
config.use_source_logger = true
|
65
65
|
config.context_inclusions = nil
|
66
66
|
config.context_exclusions = nil
|
67
|
+
config.log_level = :fatal
|
67
68
|
end
|
68
69
|
end
|
69
70
|
|
70
71
|
it "doesn't log a failure with normal usage" do
|
71
|
-
Log4r::Logger['racklogger'].should_not_receive(:
|
72
|
+
Log4r::Logger['racklogger'].should_not_receive(:fatal)
|
72
73
|
get "/"
|
73
74
|
end
|
74
75
|
|
75
76
|
it "triggers failure handler" do
|
76
|
-
Log4r::Logger['racklogger'].should_receive(:
|
77
|
+
Log4r::Logger['racklogger'].should_receive(:fatal) do |msg|
|
77
78
|
msg.should be_instance_of RuntimeError
|
78
79
|
msg.message.should == "I failed"
|
79
80
|
msg.backtrace.first.should =~ /rack_failure_handler_spec.rb/
|
@@ -87,7 +88,7 @@ describe Log4rExceptionable::RackFailureHandler do
|
|
87
88
|
|
88
89
|
it "uses default logger if controller logger is nil" do
|
89
90
|
|
90
|
-
Log4r::Logger['racklogger'].should_receive(:
|
91
|
+
Log4r::Logger['racklogger'].should_receive(:fatal) do |msg|
|
91
92
|
msg.should be_instance_of RuntimeError
|
92
93
|
msg.message.should == "I failed"
|
93
94
|
end
|
@@ -99,7 +100,7 @@ describe Log4rExceptionable::RackFailureHandler do
|
|
99
100
|
|
100
101
|
it "uses default logger if controller logger is not log4r" do
|
101
102
|
|
102
|
-
Log4r::Logger['racklogger'].should_receive(:
|
103
|
+
Log4r::Logger['racklogger'].should_receive(:fatal) do |msg|
|
103
104
|
msg.should be_instance_of RuntimeError
|
104
105
|
msg.message.should == "I failed"
|
105
106
|
end
|
@@ -111,8 +112,8 @@ describe Log4rExceptionable::RackFailureHandler do
|
|
111
112
|
|
112
113
|
it "uses controller logger if set" do
|
113
114
|
Log4r::Logger.new('ControllerLogger')
|
114
|
-
Log4r::Logger['racklogger'].should_not_receive(:
|
115
|
-
Log4r::Logger['ControllerLogger'].should_receive(:
|
115
|
+
Log4r::Logger['racklogger'].should_not_receive(:fatal)
|
116
|
+
Log4r::Logger['ControllerLogger'].should_receive(:fatal) do |msg|
|
116
117
|
msg.should be_instance_of RuntimeError
|
117
118
|
msg.message.should == "I failed"
|
118
119
|
end
|
@@ -125,8 +126,8 @@ describe Log4rExceptionable::RackFailureHandler do
|
|
125
126
|
it "uses default logger if source logger disabled" do
|
126
127
|
Log4rExceptionable::Configuration.use_source_logger = false
|
127
128
|
Log4r::Logger.new('ControllerLogger')
|
128
|
-
Log4r::Logger['ControllerLogger'].should_not_receive(:
|
129
|
-
Log4r::Logger['racklogger'].should_receive(:
|
129
|
+
Log4r::Logger['ControllerLogger'].should_not_receive(:fatal)
|
130
|
+
Log4r::Logger['racklogger'].should_receive(:fatal) do |msg|
|
130
131
|
msg.should be_instance_of RuntimeError
|
131
132
|
msg.message.should == "I failed"
|
132
133
|
end
|
@@ -138,7 +139,7 @@ describe Log4rExceptionable::RackFailureHandler do
|
|
138
139
|
|
139
140
|
it "adds controller names if set" do
|
140
141
|
Log4r::Logger.new('ControllerLogger')
|
141
|
-
Log4r::Logger['ControllerLogger'].should_receive(:
|
142
|
+
Log4r::Logger['ControllerLogger'].should_receive(:fatal) do |msg|
|
142
143
|
msg.should be_instance_of RuntimeError
|
143
144
|
msg.message.should == "I failed"
|
144
145
|
Log4r::MDC.get('rack_controller_name').should == 'foo'
|
@@ -152,7 +153,7 @@ describe Log4rExceptionable::RackFailureHandler do
|
|
152
153
|
|
153
154
|
it "uses default logger if rack logger is nil" do
|
154
155
|
|
155
|
-
Log4r::Logger['racklogger'].should_receive(:
|
156
|
+
Log4r::Logger['racklogger'].should_receive(:fatal) do |msg|
|
156
157
|
msg.should be_instance_of RuntimeError
|
157
158
|
msg.message.should == "I failed"
|
158
159
|
end
|
@@ -163,7 +164,7 @@ describe Log4rExceptionable::RackFailureHandler do
|
|
163
164
|
end
|
164
165
|
|
165
166
|
it "uses default logger if rack logger is not log4r" do
|
166
|
-
Log4r::Logger['racklogger'].should_receive(:
|
167
|
+
Log4r::Logger['racklogger'].should_receive(:fatal) do |msg|
|
167
168
|
msg.should be_instance_of RuntimeError
|
168
169
|
msg.message.should == "I failed"
|
169
170
|
end
|
@@ -175,8 +176,8 @@ describe Log4rExceptionable::RackFailureHandler do
|
|
175
176
|
|
176
177
|
it "uses rack logger if set" do
|
177
178
|
Log4r::Logger.new('RackLogger')
|
178
|
-
Log4r::Logger['racklogger'].should_not_receive(:
|
179
|
-
Log4r::Logger['RackLogger'].should_receive(:
|
179
|
+
Log4r::Logger['racklogger'].should_not_receive(:fatal)
|
180
|
+
Log4r::Logger['RackLogger'].should_receive(:fatal) do |msg|
|
180
181
|
msg.should be_instance_of RuntimeError
|
181
182
|
msg.message.should == "I failed"
|
182
183
|
end
|
@@ -189,7 +190,7 @@ describe Log4rExceptionable::RackFailureHandler do
|
|
189
190
|
it "only includes inclusions if set" do
|
190
191
|
Log4rExceptionable::Configuration.context_inclusions = ['rack_env_rack.version']
|
191
192
|
|
192
|
-
Log4r::Logger['racklogger'].should_receive(:
|
193
|
+
Log4r::Logger['racklogger'].should_receive(:fatal) do |msg|
|
193
194
|
msg.should be_instance_of RuntimeError
|
194
195
|
msg.message.should == "I failed"
|
195
196
|
Log4r::MDC.get_context.keys.should == ['rack_env_rack.version']
|
@@ -204,7 +205,7 @@ describe Log4rExceptionable::RackFailureHandler do
|
|
204
205
|
it "excludes exclusions if set" do
|
205
206
|
Log4rExceptionable::Configuration.context_exclusions = ['rack_env_rack.version']
|
206
207
|
|
207
|
-
Log4r::Logger['racklogger'].should_receive(:
|
208
|
+
Log4r::Logger['racklogger'].should_receive(:fatal) do |msg|
|
208
209
|
msg.should be_instance_of RuntimeError
|
209
210
|
msg.message.should == "I failed"
|
210
211
|
Log4r::MDC.get_context.keys.should_not include 'rack_env_rack.version'
|
@@ -216,6 +217,19 @@ describe Log4rExceptionable::RackFailureHandler do
|
|
216
217
|
|
217
218
|
end
|
218
219
|
|
220
|
+
it "logs with given log_level" do
|
221
|
+
Log4rExceptionable::Configuration.log_level = :info
|
222
|
+
|
223
|
+
Log4r::Logger['racklogger'].should_receive(:info) do |msg|
|
224
|
+
msg.should be_instance_of RuntimeError
|
225
|
+
msg.message.should == "I failed"
|
226
|
+
end
|
227
|
+
|
228
|
+
lambda {
|
229
|
+
get "/other_rack_logger"
|
230
|
+
}.should raise_error("I failed")
|
231
|
+
end
|
232
|
+
|
219
233
|
end
|
220
234
|
|
221
235
|
end
|
@@ -47,6 +47,7 @@ describe Log4rExceptionable::ResqueFailureHandler do
|
|
47
47
|
config.use_source_logger = true
|
48
48
|
config.context_inclusions = nil
|
49
49
|
config.context_exclusions = nil
|
50
|
+
config.log_level = :fatal
|
50
51
|
end
|
51
52
|
|
52
53
|
Resque::Failure.backend = Log4rExceptionable::ResqueFailureHandler
|
@@ -54,7 +55,7 @@ describe Log4rExceptionable::ResqueFailureHandler do
|
|
54
55
|
|
55
56
|
it "triggers failure handler" do
|
56
57
|
|
57
|
-
Log4r::Logger['resquelogger'].should_receive(:
|
58
|
+
Log4r::Logger['resquelogger'].should_receive(:fatal) do |msg|
|
58
59
|
msg.should be_instance_of RuntimeError
|
59
60
|
msg.message.should == "I failed"
|
60
61
|
msg.backtrace.first.should =~ /resque_failure_handler_spec.rb/
|
@@ -69,7 +70,7 @@ describe Log4rExceptionable::ResqueFailureHandler do
|
|
69
70
|
|
70
71
|
it "uses default logger if job logger is nil" do
|
71
72
|
|
72
|
-
Log4r::Logger['resquelogger'].should_receive(:
|
73
|
+
Log4r::Logger['resquelogger'].should_receive(:fatal) do |msg|
|
73
74
|
msg.should be_instance_of RuntimeError
|
74
75
|
msg.message.should == "I failed"
|
75
76
|
Log4r::MDC.get('resque_class').should == SomeJobWithNilLogger
|
@@ -80,7 +81,7 @@ describe Log4rExceptionable::ResqueFailureHandler do
|
|
80
81
|
|
81
82
|
it "uses default logger if job logger is not log4r" do
|
82
83
|
|
83
|
-
Log4r::Logger['resquelogger'].should_receive(:
|
84
|
+
Log4r::Logger['resquelogger'].should_receive(:fatal) do |msg|
|
84
85
|
msg.should be_instance_of RuntimeError
|
85
86
|
msg.message.should == "I failed"
|
86
87
|
Log4r::MDC.get('resque_class').should == SomeJobWithOtherLogger
|
@@ -91,8 +92,8 @@ describe Log4rExceptionable::ResqueFailureHandler do
|
|
91
92
|
|
92
93
|
it "uses job logger if set" do
|
93
94
|
Log4r::Logger.new('SomeJobWithLogger')
|
94
|
-
Log4r::Logger['resquelogger'].should_not_receive(:
|
95
|
-
Log4r::Logger['SomeJobWithLogger'].should_receive(:
|
95
|
+
Log4r::Logger['resquelogger'].should_not_receive(:fatal)
|
96
|
+
Log4r::Logger['SomeJobWithLogger'].should_receive(:fatal) do |msg|
|
96
97
|
msg.should be_instance_of RuntimeError
|
97
98
|
msg.message.should == "I failed"
|
98
99
|
Log4r::MDC.get('resque_class').should == SomeJobWithLogger
|
@@ -105,8 +106,8 @@ describe Log4rExceptionable::ResqueFailureHandler do
|
|
105
106
|
Log4rExceptionable::Configuration.use_source_logger = false
|
106
107
|
|
107
108
|
Log4r::Logger.new('SomeJobWithLogger')
|
108
|
-
Log4r::Logger['SomeJobWithLogger'].should_not_receive(:
|
109
|
-
Log4r::Logger['resquelogger'].should_receive(:
|
109
|
+
Log4r::Logger['SomeJobWithLogger'].should_not_receive(:fatal)
|
110
|
+
Log4r::Logger['resquelogger'].should_receive(:fatal) do |msg|
|
110
111
|
msg.should be_instance_of RuntimeError
|
111
112
|
msg.message.should == "I failed"
|
112
113
|
Log4r::MDC.get('resque_class').should == SomeJobWithLogger
|
@@ -118,7 +119,7 @@ describe Log4rExceptionable::ResqueFailureHandler do
|
|
118
119
|
it "only includes inclusions if set" do
|
119
120
|
Log4rExceptionable::Configuration.context_inclusions = ['resque_queue']
|
120
121
|
|
121
|
-
Log4r::Logger['resquelogger'].should_receive(:
|
122
|
+
Log4r::Logger['resquelogger'].should_receive(:fatal) do |msg|
|
122
123
|
msg.should be_instance_of RuntimeError
|
123
124
|
msg.message.should == "I failed"
|
124
125
|
Log4r::MDC.get_context.keys.should == ['resque_queue']
|
@@ -130,7 +131,7 @@ describe Log4rExceptionable::ResqueFailureHandler do
|
|
130
131
|
it "excludes exclusions if set" do
|
131
132
|
Log4rExceptionable::Configuration.context_exclusions = ['resque_queue']
|
132
133
|
|
133
|
-
Log4r::Logger['resquelogger'].should_receive(:
|
134
|
+
Log4r::Logger['resquelogger'].should_receive(:fatal) do |msg|
|
134
135
|
msg.should be_instance_of RuntimeError
|
135
136
|
msg.message.should == "I failed"
|
136
137
|
Log4r::MDC.get_context.keys.should_not include 'resque_queue'
|
@@ -139,6 +140,18 @@ describe Log4rExceptionable::ResqueFailureHandler do
|
|
139
140
|
run_resque_job(SomeJob, 'foo', :queue => :somequeue, :inline => true)
|
140
141
|
end
|
141
142
|
|
143
|
+
it "logs with given log_level" do
|
144
|
+
Log4rExceptionable::Configuration.log_level = :info
|
145
|
+
|
146
|
+
Log4r::Logger['resquelogger'].should_receive(:info) do |msg|
|
147
|
+
msg.should be_instance_of RuntimeError
|
148
|
+
msg.message.should == "I failed"
|
149
|
+
end
|
150
|
+
|
151
|
+
run_resque_job(SomeJob, 'foo', :queue => :somequeue, :inline => true)
|
152
|
+
end
|
153
|
+
|
154
|
+
|
142
155
|
end
|
143
156
|
|
144
157
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: log4r-exceptionable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-06-
|
12
|
+
date: 2012-06-21 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|