# File lib/net/dns/resolver.rb, line 223
      def initialize(config = {})
        raise ArgumentError, "Argument has to be Hash" unless config.kind_of? Hash
        # config.downcase_keys!
        @config = Defaults.merge config
        @raw = false

        # New logger facility
        @logger = Logger.new(@config[:log_file])
        @logger.level = $DEBUG ? Logger::DEBUG : Logger::WARN
        
        #------------------------------------------------------------
        # Resolver configuration will be set in order from:
        # 1) initialize arguments
        # 2) ENV variables
        # 3) config file
        # 4) defaults (and /etc/resolv.conf for config)
        #------------------------------------------------------------

        
        
        #------------------------------------------------------------
        # Parsing config file
        #------------------------------------------------------------
        parse_config_file
        
        #------------------------------------------------------------
        # Parsing ENV variables
        #------------------------------------------------------------
        parse_environment_variables
        
        #------------------------------------------------------------
        # Parsing arguments
        #------------------------------------------------------------
        config.each do |key,val|
          next if key == :log_file or key == :config_file
          begin
            eval "self.#{key.to_s} = val"
          rescue NoMethodError
            raise ArgumentError, "Option #{key} not valid"
          end
        end
      end