class Photish::Log::Setup

Constants

LEVEL

Attributes

config[R]
setup_complete[RW]

Public Class Methods

new() click to toggle source
# File lib/photish/log/setup.rb, line 16
def initialize
  @config = nil
end

Public Instance Methods

configure(incoming_config) click to toggle source
# File lib/photish/log/setup.rb, line 20
def configure(incoming_config)
  return if config
  @config = incoming_config
end
new_logger(name) click to toggle source
# File lib/photish/log/setup.rb, line 25
def new_logger(name)
  logger = setup_new_logger(name, null_file)
  logger.extend(stdout_broadcast(name)) if output_to_stdout?
  logger.extend(file_broadcast(name)) if output_to_file?
  logger
end

Private Instance Methods

file_broadcast(name) click to toggle source
# File lib/photish/log/setup.rb, line 52
def file_broadcast(name)
  file = File.join('log', 'photish.log')
  FileUtils.mkdir_p('log')
  logger = setup_new_logger(name, file)
  logger.formatter = Log::Formatter.new(false)
  ActiveSupport::Logger.broadcast(logger)
end
logging_level() click to toggle source
# File lib/photish/log/setup.rb, line 66
def logging_level
  LEVEL.fetch(level.try(:to_sym))
end
null_file() click to toggle source
# File lib/photish/log/setup.rb, line 41
def null_file
  File.open(File::NULL, 'w')
end
output_to_file?() click to toggle source
# File lib/photish/log/setup.rb, line 74
def output_to_file?
  output.include?('file')
end
output_to_stdout?() click to toggle source
# File lib/photish/log/setup.rb, line 70
def output_to_stdout?
  output.include?('stdout')
end
setup_new_logger(name, stream) click to toggle source
# File lib/photish/log/setup.rb, line 45
def setup_new_logger(name, stream)
  logger = ActiveSupport::Logger.new(stream)
  logger.progname = name
  logger.level = logging_level
  logger
end
stdout_broadcast(name) click to toggle source
# File lib/photish/log/setup.rb, line 60
def stdout_broadcast(name)
  logger = setup_new_logger(name, STDOUT)
  logger.formatter = Log::Formatter.new(colorize)
  ActiveSupport::Logger.broadcast(logger)
end