Cómo guardar la salida de una consola.log(objeto) a un archivo?


Traté de usar JSON.stringify(object), pero no cae en toda la estructura y jerarquía.

Por otro lado console.log(object) hace eso, pero no puedo guardarlo.

En la salida console.log puedo expandir uno por uno todos los hijos y seleccionar y copiar/pegar, pero la estructura es demasiado grande para eso.

Author: Mark, 2012-08-07

7 answers

Actualizar: Ahora puede hacer clic con el botón derecho

Haga clic con el botón derecho > Guardar como en el panel de consola para guardar los mensajes registrados en un archivo.

Respuesta original:

Puede usar este fragmento de código devtools que se muestra a continuación para crear una consola.método save. Crea un FileBlob a partir de la entrada y luego lo descarga automáticamente.

(function(console){

console.save = function(data, filename){

    if(!data) {
        console.error('Console.save: No data')
        return;
    }

    if(!filename) filename = 'console.json'

    if(typeof data === "object"){
        data = JSON.stringify(data, undefined, 4)
    }

    var blob = new Blob([data], {type: 'text/json'}),
        e    = document.createEvent('MouseEvents'),
        a    = document.createElement('a')

    a.download = filename
    a.href = window.URL.createObjectURL(blob)
    a.dataset.downloadurl =  ['text/json', a.download, a.href].join(':')
    e.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null)
    a.dispatchEvent(e)
 }
})(console)

Fuente: http://bgrins.github.io/devtools-snippets/#console-save

 246
Author: Patrick,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-05-20 00:12:29

En caso de que tenga un objeto registrado:

  • Haga clic derecho en el objeto en la consola y haga clic en Store as a global variable
  • la salida será algo así como temp1
  • escriba en la consola copy(temp1)
  • pegar en su editor de texto favorito
 114
Author: Art S,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-01-09 17:55:28

Puede utilizar "Chrome Developers Tool" Command Line API "copy()" para copiar la representación de cadena del objeto especificado en el portapapeles.

Si tienes muchos objetos entonces: En realidad se puede " JSON.stringify () " todos tus objetos y sigue añadiéndolos a una cadena. Ahora usa el método copy () para copiar la cadena completa a clipbard.

 104
Author: bthota,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-06-05 00:48:19

Hay un plugin javascript de código abierto que hace precisamente eso-debugout.js

Depuración.js graba y guarda la consola.registros para que su aplicación pueda acceder a ellos. Revelación completa, yo lo escribí. Formatea diferentes tipos apropiadamente, puede manejar objetos anidados y matrices, y opcionalmente puede poner una marca de tiempo al lado de cada registro. También alterna el registro en vivo en un solo lugar.

 5
Author: inorganik,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-06-17 18:00:07

Haga clic derecho en la consola.. haga clic en guardar como.. es así de simple.. obtendrá un archivo de texto de salida

 3
Author: Akhil_S,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-05-03 09:16:00

Puede usar la biblioteca l2i (https://github.com/seriyvolk83/logs2indexeddb ) para salvar todo lo que pones en console.log y luego invocar

l2i.download();

Para descargar un archivo con registros.

 2
Author: Alexander Volkov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-07-02 19:41:07

Hay otra herramienta de código abierto que le permite guardar toda la salida console.log en un archivo en su servidor - JS LogFlush (plug!).

JS LogFlush es una solución integrada de registro de JavaScript que incluye:

  • reemplazo de la consola sin interfaz de usuario entre navegadores.iniciar sesión en el lado del cliente.
  • sistema de almacenamiento de registros - en el lado del servidor.

Demo

 1
Author: hindmost,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-09-29 09:14:37