# File lib/net/dns/resolver.rb, line 240
      def initialize(config = {})
        raise ArgumentError, "Expected `config' to be a Hash" unless config.is_a?(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