Skip to content

Commit 1e097b3

Browse files
committed
feat: use structured logs for logging errors
1 parent 2af4bf9 commit 1e097b3

File tree

2 files changed

+14
-4
lines changed

2 files changed

+14
-4
lines changed

lib/pact_broker/logging.rb

+11-3
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,17 @@ def logger=(logger)
3131
end
3232

3333
def log_error e, description = nil
34-
message = "#{e.class} #{e.message}\n#{e.backtrace.join("\n")}"
35-
message = "#{description} - #{message}" if description
36-
logger.error message
34+
if logger.instance_of?(SemanticLogger::Logger)
35+
if description
36+
logger.error(description, e)
37+
else
38+
logger.error(e)
39+
end
40+
else
41+
message = "#{e.class} #{e.message}\n#{e.backtrace.join("\n")}"
42+
message = "#{description} - #{message}" if description
43+
logger.error message
44+
end
3745
if ENV['PACT_BROKER_HIDE_PACTFLOW_MESSAGES'] != 'true'
3846
logger.info "\n\n#{'*' * 80}\n\nPrefer it was someone else's job to deal with this error? Check out https://pactflow.io/oss for a hardened, fully supported SaaS version of the Pact Broker with an improved UI + more.\n\n#{'*' * 80}\n"
3947
end

lib/pact_broker/logging/default_formatter.rb

+3-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@ def initialize
99
end
1010

1111
def call(log, output)
12-
@formatter.call(log.level.upcase, log.time, nil, log.message)
12+
self.log = log
13+
self.logger = logger
14+
@formatter.call(log.level.upcase, log.time, nil, [tags, named_tags, duration, message, payload, exception].compact.join(" "))
1315
end
1416
end
1517
end

0 commit comments

Comments
 (0)