class Ingenico::Direct::SDK::Logging::RubyCommunicatorLogger

Logging class that Logs messages and errors to a logger. Errors can be logged at a separate level compared to regular messages.

Public Class Methods

create_logfile(filename) click to toggle source

Opens or creates a new file in write-only mode with filename.

# File lib/ingenico/direct/sdk/logging/ruby_communicator_logger.rb, line 38
def self.create_logfile(filename)
  logdev = begin
             open(filename, (File::WRONLY | File::APPEND | File::CREAT | File::EXCL))
           rescue Errno::EEXIST
             # file is created by another process
             open_logfile(filename)
           end
  logdev.sync = true
  logdev
end
new(logger, log_level, error_level = false) click to toggle source

Creates a new RubyCommunicatorLogger instance.

@param logger [Logger] the logger to log messages to. Messages to log will be provided using logger#log(message level, message) @param log_level [String] log level to use for non-error messages. @param error_level [String] error logging level to use.

# File lib/ingenico/direct/sdk/logging/ruby_communicator_logger.rb, line 15
def initialize(logger, log_level, error_level = false)
  # implement the interface
  error_level ||= log_level
  raise ArgumentError unless logger
  raise ArgumentError unless log_level
  raise ArgumentError unless error_level

  @logger = logger
  @log_level = log_level
  @errorLevel = error_level
end
open_logfile(filename) click to toggle source

Opens or creates a new file in write-only mode with filename.

# File lib/ingenico/direct/sdk/logging/ruby_communicator_logger.rb, line 50
def self.open_logfile(filename)
  open(filename, (File::WRONLY | File::APPEND))
rescue Errno::ENOENT
  create_logfile(filename)
end

Public Instance Methods

log(msg, thrown = nil) click to toggle source

Logs a single error or non-error message to the logger.

# File lib/ingenico/direct/sdk/logging/ruby_communicator_logger.rb, line 28
def log(msg, thrown = nil)
  # use Ruby Logger
  if thrown
    @logger.log(@errorLevel) { msg + $RS + thrown.to_s + $RS + thrown.backtrace.join($RS) }
  else
    @logger.log(@log_level, msg)
  end
end