module PactBroker::Logging

Public Class Methods

included(base) click to toggle source
# File lib/pact_broker/logging.rb, line 8
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
logger() click to toggle source

Returns [SemanticLogger::Logger] class level logger

# File lib/pact_broker/logging.rb, line 13
def self.logger
  require "pact_broker/configuration"
  @logger ||= PactBroker.configuration.custom_logger || SemanticLogger[self]
end
logger=(logger) click to toggle source

Replace instance class level logger

# File lib/pact_broker/logging.rb, line 19
def self.logger=(logger)
  @logger = logger
end

Public Instance Methods

log_error(e, description = nil) click to toggle source
# File lib/pact_broker/logging.rb, line 55
def log_error e, description = nil
  if logger.instance_of?(SemanticLogger::Logger)
    if description
      logger.error(description, e)
    else
      logger.error(e)
    end
  else
    message = "#{e.class} #{e.message}\n#{e.backtrace.join("\n")}"
    message = "#{description} - #{message}" if description
    logger.error message
  end
  unless PactBroker.configuration.hide_pactflow_messages
    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
end
log_with_tag(tag) { || ... } click to toggle source
# File lib/pact_broker/logging.rb, line 35
def log_with_tag(tag)
  if logger.respond_to?(:tagged)
    logger.tagged(tag) do
      yield
    end
  else
    yield
  end
end
logger() click to toggle source

Returns [SemanticLogger::Logger] instance level logger

# File lib/pact_broker/logging.rb, line 24
def logger
  @logger ||= self.class.logger
end
logger=(logger) click to toggle source

Replace instance level logger

# File lib/pact_broker/logging.rb, line 29
def logger=(logger)
  @logger = logger
end
measure_info(message, payload: {}) { || ... } click to toggle source
# File lib/pact_broker/logging.rb, line 45
def measure_info(message, payload: {})
  if logger.respond_to?(:measure_info)
    logger.measure_info(message, payload: payload) do
      yield
    end
  else
    yield
  end
end