module Net::SSH::Loggable
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
Attributes
The logger instance that will be used to log messages. If nil, nothing will be logged.
Public Instance Methods
Displays the result of yielding if the log level is Logger::DEBUG or greater.
# File lib/net/ssh/loggable.rb, line 24 def debug logger.add(Logger::DEBUG, nil, facility) { yield } if logger && logger.debug? end
Displays the result of yielding if the log level is Logger:ERROR or greater.
# File lib/net/ssh/loggable.rb, line 42 def error logger.add(Logger::ERROR, nil, facility) { yield } if logger && logger.error? end
Displays the result of yielding if the log level is Logger::FATAL or greater.
# File lib/net/ssh/loggable.rb, line 48 def fatal logger.add(Logger::FATAL, nil, facility) { yield } if logger && logger.fatal? end
Displays the result of yielding if the log level is Logger::INFO or greater.
# File lib/net/ssh/loggable.rb, line 30 def info logger.add(Logger::INFO, nil, facility) { yield } if logger && logger.info? end
Displays the result of yielding if the log level is Logger::WARN or greater. (Called lwarn to avoid shadowing with Kernel#warn.)
# File lib/net/ssh/loggable.rb, line 36 def lwarn logger.add(Logger::WARN, nil, facility) { yield } if logger && logger.warn? end
Private Instance Methods
Sets the “facility” value, used for reporting where a log message originates. It defaults to the name of class with the object_id appended.
# File lib/net/ssh/loggable.rb, line 57 def facility @facility ||= self.class.to_s.gsub(/::/, ".").gsub(/([a-z])([A-Z])/, "\\1_\\2").downcase + "[%x]" % object_id end