Sha256: f31d12f953b772e561de91eaaf146ae62a91a77cdc9cd779d3df8f77a3af0211
Contents?: true
Size: 1.94 KB
Versions: 3
Compression:
Stored size: 1.94 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 ||= _create_logger 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 private def _create_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 = ::Logger.new(dest) logger.level = ::Logger::WARN logger else logger = ::Logger.new MultiDestinationLogger.new logger.level = ::Logger::DEBUG logger end end 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.5.6 | lib/lanes/logger.rb |
lanes-0.5.5 | lib/lanes/logger.rb |
lanes-0.5.0 | lib/lanes/logger.rb |