Sha256: 45275b8125cf8ca6ea10aae62c9517e1381b6a8781efb107e284af71c1d8f933
Contents?: true
Size: 1.61 KB
Versions: 1
Compression:
Stored size: 1.61 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) puts "Logging going to target [#{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
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
datashift-0.40.1 | lib/datashift/logging.rb |