Module: RubyJobs::JobBase::JobLogging

Included in:
Job
Defined in:
lib/job_base/job_logging.rb

Instance Method Summary collapse

Instance Method Details

#init_logger(id_or_name, name = nil, type = :plain) ⇒ Object



26
27
28
# File 'lib/job_base/job_logging.rb', line 26

def init_logger(id_or_name, name=nil, type=:plain)
  logger(type, id_or_name.to_sym, name || id_or_name.to_s)
end

#log(*messages) ⇒ Object



30
31
32
33
34
# File 'lib/job_base/job_logging.rb', line 30

def log(*messages)
  return logger(:plain) if messages.empty?
  return logger(:plain, messages.first).log *messages.drop(1) if messages.first.is_a? Symbol || messages.first.nil?
  logger(:plain).log *messages
end

#logger(type, logger_id = nil, logger_name = nil) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/job_base/job_logging.rb', line 7

def logger(type, logger_id=nil, logger_name=nil)
  @loggers ||= {}
  loggers_of_type = (@loggers[type] ||= {})

  logger_class = "#{type}Logger"
  logger_class[0] = logger_class[0].upcase

  base_name = job_name
  base_name += "_#{instance}" unless instance.nil? || instance.empty?
  logger_name ||= (logger_id ? "#{base_name}_#{logger_id}" : base_name)
  logger = (loggers_of_type[logger_id] ||= Logging.const_get(logger_class).new(logger_name))

  if block_given?
    yield logger
  end

  logger
end

#progress(*messages, &block) ⇒ Object



36
37
38
39
40
# File 'lib/job_base/job_logging.rb', line 36

def progress(*messages, &block)
  return logger(:progress) if messages.empty?
  return logger(:progress, messages.first).log *messages.drop(1) if messages.first.is_a? Symbol
  block_given? ? logger(:progress).log(*messages, &block) : logger(:progress).log(*messages)
end