Sha256: 746a18d0cc72e3ffa6581bcf23373192fd420b89579662647ee3c948e23ca83b
Contents?: true
Size: 1.55 KB
Versions: 2
Compression:
Stored size: 1.55 KB
Contents
# Copyright:: (c) Autotelik Media Ltd 2015 # Author :: Tom Statter # Date :: Aug 2012 # License:: Free, Open Source. MIT. # # Details:: Logging facilities for datashift. # require 'fileutils' require 'singleton' module DataShift module Logging class MultiIO include Singleton attr_reader :targets def initialize @targets = [] @names = [] end def add_file(target) unless @names.include?(target) add( File.open(target, 'a') ) @names << target end end def verbose target = 'stdout' unless @names.include?(target) add(STDOUT) @names << target end end def method_missing(method, *args, &block) @targets.each { |t| t.send(method, *args, &block) } end private def add(target) @targets << Logger.new(target) end end require 'logger' def logdir=(x) @logdir = x end def logdir @logdir ||= 'log' @logdir end def logger @mutli_logger ||= open @mutli_logger end def verbose @verbose_logger ||= logger.verbose end private def open( log = 'datashift.log') FileUtils.mkdir(logdir) unless File.directory?(logdir) MultiIO.instance.add_file(File.join(logdir, log)) ActiveRecord::Base.logger = MultiIO.instance if defined?(ActiveRecord) && ActiveRecord::Base.logger MultiIO.instance.verbose if(DataShift::Configuration.call.verbose) MultiIO.instance end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
datashift-0.40.4 | lib/datashift/logging.rb |
datashift-0.40.3 | lib/datashift/logging.rb |