2012-04-18 10 views
6

En un proyecto escolar, estoy ejecutando algunos javascript que se ingresan a través de la ventana de la consola y se ejecutan desde allí. Este script manipula la página web y envía los resultados a la consola.Registro de la consola de la tienda en Chrome de forma persistente

PROBLEMA: Guarde/guarde estos resultados de forma persistente para que no desaparezcan al cerrar el navegador, el mal funcionamiento del script/la recarga de la página o, si es posible, el bloqueo del equipo.

Pensé en utilizar marcos como Log4js o jStorage (jQuery Storage), pero como este no es mi sitio web que estoy manipulando, no puedo agregar código o marcado a la página.

¿Hay alguna manera de hacer esto?

NOTA: No es crítico que registre los resultados en la consola, podría enviarlos a otra parte o hacer algo más con ellos si eso hace que sea más fácil de iniciar sesión.

Gracias.

+0

Chrome el registro de la consola puede persistir en las recargas de página, es una opción incorporada. – katspaugh

+0

Gracias. Podría ser útil si no puedo resolver la función de registro de disco –

+0

Una lástima que OP nunca haya aceptado una respuesta – Mawg

Respuesta

1

Uso console.error(arg); - Se enviará el mensaje de la consola en el navegador de stderr (estoy bastante seguro de que lo hará en la versión se basa, también.)

Comience su navegador desde la línea de comandos y redirigir su stderr en algún archivo (algo similar a chrome 2>errlog).

+0

Quiere decir que el argumento siguiente --args debe ser 2> errlog, lo que significa que los registros de nivel 2 (errores) se registran en el archivo errlog? ¿Alguna idea de dónde se guardaría este archivo? Estoy en un mac. –

+0

'2> errlog' significa" redireccionar stderr (que tiene un asa de 2) en un archivo llamado 'errlog' ". Puede proporcionar cualquier nombre de archivo (incluida la ruta completa). –

+1

Especifiqué una ruta completa y, después de reiniciar, se creó el archivo, que es una buena señal. Aún así, después de ejecutar algunos console.error (args) que me muestran el argumento en texto rojo, no se agrega al archivo de texto. La única línea en el archivo de texto es la siguiente: [0418/164110: INFO: breakpad_mac.mm (148)] Breakpad deshabilitado Este es mi script de AppleScript para abrir Chrome con los argumentos: do shell script "/ Aplicaciones/Google \\ Chrome.app/Contents/MacOS/Google \\ Chrome --enable-logging --v = 1 2>/Users/* myusername */Documents/errlog.txt " –

8

Si desea guardar automáticamente todo en Chrome consola que tiene que ejecutar Chrome con estas opciones:

--enable-logging --v=1 

que va a guardar el registro lleno de cromo en el interior de su directorio de datos (tenga en cuenta que el archivo será sobrescrito en cada ejecución). Más detalles here.

Forma alternativa: instala la utilidad Sawbuck para administrar los registros de Chrome.

+0

Gracias, lo comprobaré! –

+0

Parece que no puedo encontrar el archivo de registro. ¿Alguna idea de dónde se encuentra? Estoy en un mac, revisé el contenido del paquete de Chrome.app. –

+0

Debe estar en ~/Library/Application Support/Google/Chrome/Default, de todos modos, consulte http://www.chromium.org/for-testers/enable-logging –

7

He aquí una pequeña función que almacena los registros en la WebStorage (se mantendrá en todas las sesiones del explorador):

console.plog = function() { 
    var key = Date.now(); 
    var value = JSON.stringify([].slice.call(arguments)); 
    localStorage.setItem(key, value); 
    console.log.apply(console, arguments); 
} 

Para restaurar los registros, que tendría que ejecutar la siguiente expresión:

(function restoreLogs() { 
    var timestamps = Object.keys(localStorage).sort(); 
    timestamps.forEach(function (ts) { 
     var logArgs = JSON.parse(localStorage.getItem(ts)); 
     console.log.apply(console, logArgs); 
    }); 
}()); 
Cuestiones relacionadas