 
     protected function doLog (level :int, messages :Array) :void
     {
-        if (level < getLevel(_spec)) {
+        if (level < getLevel(_module)) {
             return; // we don't want to log it!
         }
-        messages.unshift(getTimeStamp(), LEVEL_NAMES[level], _spec);
+        messages.unshift(getTimeStamp(), LEVEL_NAMES[level], _module);
         trace.apply(null, messages);
 
         // possibly also dispatch to any other log targets.

    }

    /**
     * Get the logging level for the specified spec.
     */
    protected static function getLevel (spec :String) :int
    {
        // we probably already have the level cached for this spec
        var obj :Object = _levels[spec];
        if (obj == null) {
            // cache miss- copy some parent spec's level...
            var modSpec :String = spec;
            while (true) {
                obj = _setLevels[modSpec];
                if (obj != null || modSpec == "") {
                    // bail if we found a setting or get to the top level,
                    // but always save the level from _setLevels into _levels
                    _levels[spec] = int(obj); // if obj was null, this will become 0 (DEBUG)
                    break;
                }
                var dex :int = modSpec.lastIndexOf(".");
                if (dex == -1) {
                    modSpec = "";
                } else {
                    modSpec = modSpec.substring(0, dex);
                }
            }
        }
        return int(obj);
    }

    /**
     * Reset (clear) the log level cache.
     */
    protected static function resetLevels () :void
    {
        _levels = {};
    }

    protected static function stringToLevel (s :String) :int

        }
    }

    /** The module to which this log instance applies. */
    protected var _module :String;

    /** Other registered LogTargets, besides the trace log. */
    protected static var _targets :Array = [];

    /** A cache of log levels, copied from _setLevels. */
