class Cronicle::Logger

Public Class Methods

log(level, message, opts = {}) click to toggle source
# File lib/cronicle/logger.rb, line 25
def log(level, message, opts = {})
  message = "#{level.to_s.downcase}: #{message}" unless level == :info
  message << ' (dry-run)' if opts[:dry_run]
  message.gsub!(/\s+\z/, '')
  message = message.send(opts[:color]) if opts[:color]

  job_info = ''

  if opts[:job]
    job_info << opts[:job]
  end

  host_user = [:host, :user].map {|key|
    value = opts[key]
    next unless value
    value = Cronicle::Utils.short_hostname(value) if key == :host
    value
  }.compact

  unless host_user.empty?
    job_info << ' on ' unless job_info.empty?
    job_info << host_user.join('/')
  end

  unless job_info.empty?
    job_info = "#{job_info}>".light_black
    message = "#{job_info} #{message}"
  end

  logger = opts[:logger] || Cronicle::Logger.instance
  logger.send(level, message)
end
new() click to toggle source
Calls superclass method
# File lib/cronicle/logger.rb, line 4
def initialize
  super($stdout)

  self.formatter = proc do |severity, datetime, progname, msg|
    "#{msg}\n"
  end

  self.level = INFO
end

Public Instance Methods

set_debug(value) click to toggle source
# File lib/cronicle/logger.rb, line 14
def set_debug(value)
  if value
    self.level = DEBUG
    SSHKit.config.output_verbosity = :debug
  else
    self.level = INFO
    SSHKit.config.output_verbosity = :warn
  end
end