Class: Servus::Support::Logger

Inherits:
Object
  • Object
show all
Defined in:
lib/servus/support/logger.rb

Overview

Logger class for logging service calls and results

Class Method Summary collapse

Class Method Details

.log_call(service_class, args) ⇒ Object

Logs a call to a service

Parameters:

  • service_class (Class)

    The service class

  • args (Hash)

    The arguments passed to the service



24
25
26
# File 'lib/servus/support/logger.rb', line 24

def self.log_call(service_class, args)
  logger.info("Calling #{service_class.name} with args: #{args.inspect}")
end

.log_exception(service_class, exception) ⇒ Object

Logs an uncaught exception from a service

Parameters:

  • service_class (Class)

    The service class

  • exception (Exception)

    The uncaught exception



70
71
72
# File 'lib/servus/support/logger.rb', line 70

def self.log_exception(service_class, exception)
  logger.error("#{service_class.name} uncaught exception: #{exception.class} - #{exception.message}")
end

.log_failure(service_class, error, duration) ⇒ Object

Logs a failed result from a service

Parameters:



54
55
56
# File 'lib/servus/support/logger.rb', line 54

def self.log_failure(service_class, error, duration)
  logger.warn("#{service_class.name} failed in #{duration.round(3)}s with error: #{error}")
end

.log_result(service_class, result, duration) ⇒ Object

Logs a result from a service

Parameters:

  • service_class (Class)

    The service class

  • result (Servus::Support::Response)

    The result from the service

  • duration (Float)

    The duration of the service call



33
34
35
36
37
38
39
# File 'lib/servus/support/logger.rb', line 33

def self.log_result(service_class, result, duration)
  if result.success?
    log_success(service_class, duration)
  else
    log_failure(service_class, result.error, duration)
  end
end

.log_success(service_class, duration) ⇒ Object

Logs a successful result from a service

Parameters:

  • service_class (Class)

    The service class

  • duration (Float)

    The duration of the service call



45
46
47
# File 'lib/servus/support/logger.rb', line 45

def self.log_success(service_class, duration)
  logger.info("#{service_class.name} succeeded in #{duration.round(3)}s")
end

.log_validation_error(service_class, error) ⇒ Object

Logs a validation error from a service

Parameters:



62
63
64
# File 'lib/servus/support/logger.rb', line 62

def self.log_validation_error(service_class, error)
  logger.error("#{service_class.name} validation error: #{error.message}")
end

.loggerLogger

Returns the logger instance depending on the environment

Returns:

  • (Logger)

    The logger instance



12
13
14
15
16
17
18
# File 'lib/servus/support/logger.rb', line 12

def self.logger
  if defined?(Rails) && Rails.respond_to?(:logger) && Rails.logger
    Rails.logger
  else
    @logger ||= ::Logger.new($stdout)
  end
end