Module: Net::SSH::Loggable

Overview

A simple module to make logging easier to deal with. It assumes that the logger instance (if not nil) quacks like a Logger object (in Ruby's standard library). Although used primarily internally by Net::SSH, it can easily be used to add Net::SSH-like logging to your own programs.

class MyClass
  include Net::SSH::Loggable
end

Net::SSH.start(...) do |ssh|
  obj = MyClass.new
  obj.logger = ssh.logger
  ...
end

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#loggerObject

The logger instance that will be used to log messages. If nil, nothing will be logged.


21
22
23
# File 'lib/net/ssh/loggable.rb', line 21

def logger
  @logger
end

Instance Method Details

#debugObject

Displays the result of yielding if the log level is Logger::DEBUG or greater.


25
26
27
# File 'lib/net/ssh/loggable.rb', line 25

def debug
  logger.add(Logger::DEBUG, nil, facility) { yield } if logger && logger.debug?
end

#errorObject

Displays the result of yielding if the log level is Logger:ERROR or greater.


43
44
45
# File 'lib/net/ssh/loggable.rb', line 43

def error
  logger.add(Logger::ERROR, nil, facility) { yield } if logger && logger.error?
end

#fatalObject

Displays the result of yielding if the log level is Logger::FATAL or greater.


49
50
51
# File 'lib/net/ssh/loggable.rb', line 49

def fatal
  logger.add(Logger::FATAL, nil, facility) { yield } if logger && logger.fatal?
end

#infoObject

Displays the result of yielding if the log level is Logger::INFO or greater.


31
32
33
# File 'lib/net/ssh/loggable.rb', line 31

def info
  logger.add(Logger::INFO, nil, facility) { yield } if logger && logger.info?
end

#lwarnObject

Displays the result of yielding if the log level is Logger::WARN or greater. (Called lwarn to avoid shadowing with Kernel#warn.)


37
38
39
# File 'lib/net/ssh/loggable.rb', line 37

def lwarn
  logger.add(Logger::WARN, nil, facility) { yield } if logger && logger.warn?
end