Class: Worldline::Connect::SDK::Logging::RubyCommunicatorLogger
- Inherits:
-
CommunicatorLogger
- Object
- CommunicatorLogger
- Worldline::Connect::SDK::Logging::RubyCommunicatorLogger
- Defined in:
- lib/worldline/connect/sdk/logging/ruby_communicator_logger.rb
Overview
Logging class that Logs messages and errors to a logger. Errors can be logged at a separate level compared to regular messages.
Class Method Summary collapse
-
.create_logfile(filename) ⇒ Object
Opens or creates a new file in write-only mode with filename.
-
.open_logfile(filename) ⇒ Object
Opens or creates a new file in write-only mode with filename.
Instance Method Summary collapse
-
#initialize(logger, log_level, error_level = nil) ⇒ RubyCommunicatorLogger
constructor
Creates a new RubyCommunicatorLogger instance.
-
#log(msg, thrown = nil) ⇒ Object
Logs a single error or non-error message to the logger.
Constructor Details
#initialize(logger, log_level, error_level = nil) ⇒ RubyCommunicatorLogger
Creates a new RubyCommunicatorLogger instance.
17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/worldline/connect/sdk/logging/ruby_communicator_logger.rb', line 17 def initialize(logger, log_level, error_level = nil) # 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 @error_level = error_level end |
Class Method Details
.create_logfile(filename) ⇒ Object
Opens or creates a new file in write-only mode with filename.
40 41 42 43 44 45 46 47 48 49 |
# File 'lib/worldline/connect/sdk/logging/ruby_communicator_logger.rb', line 40 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 |
.open_logfile(filename) ⇒ Object
Opens or creates a new file in write-only mode with filename.
52 53 54 55 56 57 58 |
# File 'lib/worldline/connect/sdk/logging/ruby_communicator_logger.rb', line 52 def self.open_logfile(filename) begin open(filename, (File::WRONLY | File::APPEND)) rescue Errno::ENOENT create_logfile(filename) end end |
Instance Method Details
#log(msg, thrown = nil) ⇒ Object
Logs a single error or non-error message to the logger.
30 31 32 33 34 35 36 37 |
# File 'lib/worldline/connect/sdk/logging/ruby_communicator_logger.rb', line 30 def log(msg, thrown = nil) # use Ruby Logger if thrown @logger.log(@error_level) { msg + $RS + thrown.to_s + $RS + thrown.backtrace.join($RS) } else @logger.log(@log_level, msg) end end |