Module: PactBroker::Logging

Defined Under Namespace

Classes: DefaultFormatter

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/pact_broker/logging.rb', line 7

def self.included(base)
  base.extend self
  base.extend SemanticLogger::Loggable::ClassMethods
  base.class_eval do
    # Returns [SemanticLogger::Logger] class level logger
    def self.logger
      require 'pact_broker/configuration'
      @logger ||= PactBroker.configuration.custom_logger || SemanticLogger[self]
    end

    # Replace instance class level logger
    def self.logger=(logger)
      @logger = logger
    end

    # Returns [SemanticLogger::Logger] instance level logger
    def logger
      @logger ||= self.class.logger
    end

    # Replace instance level logger
    def logger=(logger)
      @logger = logger
    end
  end
end

Instance Method Details

#log_error(e, description = nil) ⇒ Object



34
35
36
37
38
39
# File 'lib/pact_broker/logging.rb', line 34

def log_error e, description = nil
  message = "#{e.class} #{e.message}\n#{e.backtrace.join("\n")}"
  message = "#{description} - #{message}" if description
  logger.error message
  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"
end