def level=( level )
    lvl = case level
          when String, Symbol; ::Logging::level_num(level)
          when Integer; level
          when nil; 0
          else
            raise ArgumentError,
                  "level must be a String, Symbol, or Integer"
          end
    if lvl.nil? or lvl < 0 or lvl > ::Logging::LEVELS.length
      raise ArgumentError, "unknown level was given '#{level}'"
    end

    @level = lvl
  end
def level=( level )
    lvl = case level
          when String, Symbol; ::Logging::level_num(level)
          when Integer; level
          when nil; 0
          else
            raise ArgumentError,
                  "level must be a String, Symbol, or Integer"
          end
    if lvl.nil? or lvl < 0 or lvl > ::Logging::LEVELS.length
      raise ArgumentError, "unknown level was given '#{level}'"
    end

    @level = lvl
  end
call-seq:
    level = :all

 Set the level for this appender; log events below this level will be
 ignored by this appender. The level can be either a +String+, a
 +Symbol+, or an +Integer+. An +ArgumentError+ is raised if this is not
 the case.

 There are two special levels -- "all" and "off". The former will
 enable recording of all log events. The latter will disable the
 recording of all events.

 Example:

    appender.level = :debug
    appender.level = "INFO"
    appender.level = 4
    appender.level = 'off'
    appender.level = :all

 These produce an +ArgumentError+

    appender.level = Object
    appender.level = -1
    appender.level = 1_000_000_000_000