Skip to content

Commit cc14406

Browse files
committed
feat: change logging level from error to info for JSON parsing errors
1 parent f56e038 commit cc14406

File tree

3 files changed

+17
-7
lines changed

3 files changed

+17
-7
lines changed

lib/pact_broker/api/resources/error_handler.rb

+13-6
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,22 @@ class ErrorHandler
99
include PactBroker::Logging
1010

1111
def self.call e, request, response
12-
error_reference = SecureRandom.urlsafe_base64.gsub(/[^a-z]/i, '')[0,10]
13-
logger.error "#{e.message} - error reference #{error_reference}"
14-
logger.error e.backtrace
12+
error_reference = generate_error_reference
13+
if reportable?(e)
14+
log_error(e, "Error reference #{error_reference}")
15+
report(e, error_reference, request)
16+
else
17+
logger.info "Error reference #{error_reference} - #{e.class} #{e.message}\n#{e.backtrace.join("\n")}"
18+
end
1519
response.body = response_body_hash(e, error_reference).to_json
16-
report(e, error_reference, request) if reportable?(e)
1720
end
1821

19-
def self.reportable? e
20-
!e.is_a?(PactBroker::Error)
22+
def self.generate_error_reference
23+
SecureRandom.urlsafe_base64.gsub(/[^a-z]/i, '')[0,10]
24+
end
25+
26+
def self.reportable?(e)
27+
!e.is_a?(PactBroker::Error) && !e.is_a?(JSON::GeneratorError)
2128
end
2229

2330
def self.display_message(e, error_reference)

lib/pact_broker/logging.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ def logger=(logger)
3232
end
3333

3434
def log_error e, description = nil
35-
message = "#{e.class} #{e.message} #{e.backtrace.join("\n")}"
35+
message = "#{e.class} #{e.message}\n#{e.backtrace.join("\n")}"
3636
message = "#{description} - #{message}" if description
3737
logger.error message
3838
end

spec/lib/pact_broker/api/resources/error_handler_spec.rb

+3
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ module Resources
99
before do
1010
allow(ErrorHandler).to receive(:logger).and_return(logger)
1111
allow(SecureRandom).to receive(:urlsafe_base64).and_return("bYWfn-+yWPlf")
12+
allow(error).to receive(:backtrace).and_return(["backtrace"])
1213
end
1314

1415
let(:logger) { double('logger').as_null_object }
@@ -71,6 +72,7 @@ module Resources
7172
subject
7273
end
7374
end
75+
7476
context "when the error is not a PactBroker::Error or subclass" do
7577
it "invokes the api error reporters" do
7678
expect(thing).to receive(:call).with(error, options)
@@ -120,6 +122,7 @@ module Resources
120122
subject
121123
end
122124
end
125+
123126
context "when the error is not a PactBroker::Error or subclass" do
124127
it "invokes the api error reporters" do
125128
expect(thing).to receive(:call).with(error, options)

0 commit comments

Comments
 (0)