module Logging

Logging function module

Public Class Methods

configure_logger_for(classname) click to toggle source

Configure Logger instance for the user class.

  1. create Logger instance with given log file and sterams

  2. set progname to user class name

# File lib/sony_camera_remote_api/logging.rb, line 74
def configure_logger_for(classname)
  @log_file.compact!
  fios = @log_file.map do |f|
    f.is_a?(String) ? File.open(f, 'a') : f
  end
  logger = Logger.new MultiDelegator.delegate(:write, :close).to(*fios)
  logger.progname = classname.split('::')[-1]
  logger.level = @@level
  logger
end
log_file(classname, log_file) click to toggle source

Set log files and streams. Logger class instance is re-created.

# File lib/sony_camera_remote_api/logging.rb, line 61
def log_file(classname, log_file)
  @log_file = Array(log_file)
  @loggers[classname] = nil
end
logger_for(classname) click to toggle source

Get Logger class instance or create it for the user class

# File lib/sony_camera_remote_api/logging.rb, line 67
def logger_for(classname)
  @loggers[classname] ||= configure_logger_for(classname)
end

Public Instance Methods

log() click to toggle source

Get Logger class instance for the user class. @return [Logger] Logging class instance

# File lib/sony_camera_remote_api/logging.rb, line 29
def log
  @logger ||= Logging.logger_for(self.class.name)
end
set_level(level) click to toggle source

Set log level. @param [Fixnum] level Log level for Logger object.

# File lib/sony_camera_remote_api/logging.rb, line 44
def set_level(level)
  @@level = level
end
set_output(*log_file) click to toggle source

Set file name or stream to output log. Log file is common in each user class. @param [String, IO, Array<String, IO>] log_file file name or stream to output log. @return [void]

# File lib/sony_camera_remote_api/logging.rb, line 38
def set_output(*log_file)
  Logging.log_file self.class.name, log_file
end