Est� de puta madre lo del logLevel. Si quieres podemos hacer un mix-up
;)
El tema de la fecha podr�a ser interesante, pero los logs en s� mismos
son, en principio, atemporales; salvo que se guarden en un archivo de
texto o en bdd.

> Pos eso, que aproveche (se admiten mejoras :)

Se me ocurre un "it's not a bug, it's a feature" --o viceversa-- en
tanto que las instancias del Logger son independientes unas de otras. 

Podr�as mantener una instancia global con un singleton para "reproducir"
las clases est�ticas de AS2 y as� usar la misma en todos los casos. 

Se puede hacer f�cilmente eliminando el init() de la clase (para que
evite la instanciaci�n del array) y cambiando el this.$log por un m�todo
this.getInstance() de este tipo:

--- 8< ---
Logger.prototype.getInstance = function() {
        if (_global.$loggerArray == undefined) {
                _global.$loggerArray = new Array();
        }
        return _global.$loggerArray;
}

--- 8< ---

Esto no es m�s que una apreciaci�n subjetiva, cuando quieras hacemos el
remix ;)

M.

-----Mensaje original-----
De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
En nombre de Ale Mu�oz
Enviado el: martes, 18 de noviembre de 2003 15:33
Para: [EMAIL PROTECTED]
Asunto: Re: [ASNativos] Logger (as2)


Yo tengo por aqui un (modesto) Logger en AS1, por si a
alguien le interesa (es un poco petardo, pero certifico
que es util :)

Funciona un poco como los Loggers de Unix. Cada evento lleva asociado un
nivel (logLevel), m�s alto cuanto menos "importante" sea. Al llamar a
getLog(logLevel), se devuelven todos los eventos *por encima* del nivel
que se pasa como par�metro.

Yo lo uso con varios niveles (1: Core, 2: L�gica, 3: Interfaz, por
ejemplo) y cuando quiero ver qu� falla con la Interfaz s�lo tengo que
ver los logs del nivel 3 :)

Cada vez que se a�ade un evento, se dispara el evento onLog() del Logger
(yo lo uso para actualizar un campo de texto, por
ejemplo)

Algun d�a pondr� tambi�n soporte para "tipo" de log (de momento s�lo se
guarda, pero no se usa :) y para fecha, pero todav�a no me ha hecho
falta para nada :)

Pos eso, que aproveche (se admiten mejoras :)


a!e


-[ Logger.as ]------------------------------------------------
Logger = function(){
        this.init();
}
Logger.prototype.addLog = function(logText,logType,logLevel){
        if(logType==undefined){
                logType = "default";
        }
        if(logLevel==undefined){
                logLevel = 1;
        }
        this.$log.push([logLevel,logType+" | "+logText]);
        this.$onLog(logText,logType,logLevel);
}
Logger.prototype.getLog = function(logLevel){
        var logData = "";
        for(var i=0; i< this.$log.length; i++){
                if(this.$log[i][0] >= logLevel){
                        logData += this.$log[i][1]+"\n";
                }
        }
        return logData;
}
Logger.prototype.$onLog = function(logText,logType,logLevel){
        this.onLog(logText);
}
Logger.prototype.init = function(){
        this.$log = new Array();
}
--------------------------------------------------------------

        Ejemplo:

        myLog = new Logger();
        myLog.onLog = function(msg){
                trace(msg);
        }
        myLog.addLog("bar","Core",1);
        myLog.addLog("foobar","APP",2)
        myLog.addLog("foo","UI",3);

        trace(myLog.getLog(2)); // APP | foobar
                                // UI | foo

<!-------------------------------
Lista ASNativos:
subscripciones/desubscripciones http://www.sidedev.net/asnativos
-------------------------------->

<!-------------------------------
Lista ASNativos:
subscripciones/desubscripciones
http://www.sidedev.net/asnativos
-------------------------------->

Responder a