class Ingenico::Connect::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/connect/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/connect/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 @logLevel = 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/connect/sdk/logging/ruby_communicator_logger.rb, line 50 def self.open_logfile(filename) begin open(filename, (File::WRONLY | File::APPEND)) rescue Errno::ENOENT create_logfile(filename) end end
Public Instance Methods
log(msg, thrown=false)
click to toggle source
Logs a single error or non-error message to the logger.
# File lib/ingenico/connect/sdk/logging/ruby_communicator_logger.rb, line 28 def log(msg, thrown=false) # use Ruby Logger if thrown @logger.log(@errorLevel) { msg + $RS + thrown.to_s + $RS + thrown.backtrace.join($RS) } else @logger.log(@logLevel, msg) end end