Sha256: a32d79b280393180580b034d785c8fee2d2e583f71da886a472fc5bb0bf03a75
Contents?: true
Size: 1.77 KB
Versions: 3
Compression:
Stored size: 1.77 KB
Contents
# -*- coding: utf-8 -*- require 'logger' module Lanes class MultiDestinationLogger def initialize @targets = [ STDOUT, File.open("log/#{Lanes.config.environment}.log", "a") ] Lanes.config.get(:environment) do @targets.each{|t| t.sync = ! Lanes.env.production? } end end def write(*args) @targets.each {|t| t.write(*args)} end def close @targets.each(&:close) end end class << self def logger @logger ||= ( if defined?(::Rails) Rails.logger else if Lanes.env.production? dest = if FileTest.writable?("log/production.log") "log/production.log" else STDOUT end ::Logger.new(dest) else ::Logger.new MultiDestinationLogger.new end end ) end def logger=( logger ) @logger = logger end def silence_logs( &block ) old_logger = Lanes.logger begin Lanes.logger=Logger.new( StringIO.new ) yield ensure Lanes.logger=old_logger end end def logger_debug( output ) logger.debug '⚡ '*40 logger.debug '⚡ ' + output logger.debug '⚡ '*40 end end Lanes.config.get(:environment) do | env | self.logger=nil # it'll be re-opened on next write end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
lanes-0.4.0 | lib/lanes/logger.rb |
lanes-0.3.0 | lib/lanes/logger.rb |
lanes-0.1.9.5 | lib/lanes/logger.rb |