Sha256: 19410dd7a8f2e92d085e17bcec5d14c8b5fe9fa8ce2cd5da741e73a1c28ebd00

Contents?: true

Size: 1.33 KB

Versions: 2

Compression:

Stored size: 1.33 KB

Contents

require 'log4r'
require 'log4r/configurator'

module Log
  @loggers = Hash.new do |hash, klass|
    # Such complex initialization because I don't know how it exactly work.
    # For example: Log.new for WGUI::SomeClass will works, but Log.new for WGUI will not.
    logger = begin
      Log4r::Logger.get(klass.name)         
    rescue 
      Log4r::Logger.new(klass.name) rescue Log4r::Logger.get("Default")
    end
    hash[klass] = logger
  end
  
  module ClassMethods
    def log    
      Log.loggers[(self.class == Class or self.class == Module) ? self : self.class]
    end            
  end
  
  def log
    Log.loggers[(self.class == Class or self.class == Module) ? self : self.class]
  end        
  
  class << self
    attr_reader :loggers
    
    def info *s
      log.info *s
    end
    
    def error *s
      log.error *s
    end
    
    def warn *s
      log.warn *s
    end
    
    def log
      Log.loggers[Log]
    end        
  end
  #  configure %{\
  #<log4r_config>
  #  <pre_config>
  #    <global level="ALL"/>
  #  </pre_config>
  #
  #  <outputter type="StderrOutputter" name="default" level="ALL"/>
  #  <logger name="Default" level="ALL" outputters="default"/>
  #</log4r_config>}
end

module Log
  config = Dir.getwd + "/config/log.xml" 
  Log4r::Configurator.load_xml_string(File.read(config)) if File.exist? config
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
ruby-ext-0.4.1 old/lib/RubyExt/Log.rb
ruby-ext-0.4.0 old/lib/RubyExt/Log.rb