Estoy escribiendo un software bastante grande de JavaScript. Necesito rastrear llamadas, registrar eventos, depurar acciones, a la vez que mantener el rendimiento y la portabilidad en todos los navegadores.Estrategias para JavaScript console.log/trace, etc
Webkit y Firebug ofrecen objeto de consola con métodos como trace(), log(), error(), warning(), etc. Son geniales, pero ¿qué hago cuando el navegador es IE u Opera?
Imagine que tiene una gran aplicación, seguramente quiere ver todas las inicializaciones que está haciendo, los eventos que está realizando, etc., por lo que lo hago registrar esos. Sin embargo, si solo los registro, el registro no funcionará en los navegadores que no tienen la consola registrada en el DOM. Podría crear un objeto envoltorio:
MyNamespace.Console = {};
MyNamespace.Console.log = function(value) {
if (console!==undefined) {
console.log(value);
}
else {
// What should I do to log events on other browsers?
}
}
Lo anterior hace que por lo que no se producen problemas en IE/Opera, pero ¿cómo conectarse con el IE (uno realmente necesita iniciar sesión con IE!).
Además, si siembro registros en cualquier lugar de mi aplicación, ¿me ralentiza cuando se ejecuta en un entorno de producción? ¿Debería activar/desactivar un DEPURADOR y una simple comprobación antes de iniciar sesión si DEBUG === verdadero, entonces log?
¿Qué pasa con sistemas como Closure Compiler, puede hacerlos para eliminar el registro?
¿Qué ocurre si se produce un error al ejecutar en un entorno de producción y no se ha realizado el registro, cómo se soluciona el problema? Y, de hecho, ¿alguna vez le envía registros de errores de JavaScript (desarrollador) para asegurarse de que sus clientes no tengan problemas? ¿Cómo funciona eso?
Agradezco cualquier comentario/comentario sobre la depuración/registro con JavaScript, esta es la primera vez que escribo una gran aplicación de JavaScript, y francamente, no estoy seguro de qué hacer sobre esto ... la depuración y el inicio de sesión de JavaScript parece un poco sin terminar.