web-dev-qa-db-fra.com

Comment enregistrer la sortie d'un fichier console.log (objet)?

J'ai essayé d'utiliser JSON.stringify(object), mais la structure et la hiérarchie ne sont pas affectées.

Par contre, console.log(object) le fait, mais je ne peux pas le sauvegarder.

Dans la sortie console.log, je peux développer un par un tous les enfants et sélectionner et copier/coller, mais la structure est trop grosse pour cela.

205
Eduard Florinescu

Mise à jour: vous pouvez maintenant faire un clic droit

Cliquez avec le bouton droit de la souris sur> Enregistrer sous dans le panneau de la console pour enregistrer les messages consignés dans un fichier.

Réponse originale:

Vous pouvez utiliser cet extrait de devtools présenté ci-dessous pour créer une méthode console.save. Il crée un FileBlob à partir de l'entrée, puis le télécharge automatiquement.

(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)

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

279
Patrick

Si vous avez un objet enregistré:

  • Faites un clic droit sur l'objet dans la console et cliquez sur Store as a global variable
  • la sortie sera quelque chose comme temp1
  • taper dans la console copy(temp1)
  • coller dans votre éditeur de texte préféré
187
artemnih

Vous pouvez utiliser la commande API Chrome DevTools Utilities copy()) pour copier la représentation sous forme de chaîne de l'objet spécifié dans le Presse-papiers.

Si vous avez beaucoup d'objets, vous pouvez réellement JSON.stringify () tous vos objets et continuer à les ajouter à une chaîne. Maintenant, utilisez la méthode copy() pour copier la chaîne complète dans le presse-papiers.

117
bthota

Il existe un plugin javascript open-source qui fait exactement cela - debugout.js

Debugout.js enregistre et enregistre console.logs afin que votre application puisse y accéder. Divulgation complète, je l'ai écrit. Il formate différents types de manière appropriée, peut gérer des objets et des tableaux imbriqués et peut éventuellement placer un horodatage à côté de chaque journal. Il bascule également l'enregistrement en direct à un endroit.

7
inorganik

faites un clic droit sur la console. Cliquez sur Enregistrer sous. C'est aussi simple que cela. Vous obtiendrez un fichier texte en sortie.

3
Akhil_S

Il existe un autre outil open source qui vous permet de sauvegarder toutes les sorties console.log dans un fichier de votre serveur - JS LogFlush (plug!).

JS LogFlush est une solution de journalisation JavaScript intégrée comprenant:

  • remplacement sans interface utilisateur sur plusieurs navigateurs de console.log - côté client.
  • journal du système de stockage - côté serveur.

démo

2
hindmost

Vous pouvez utiliser la bibliothèque l2i ( https://github.com/seriyvolk83/logs2indexeddb ) pour enregistrer tout ce que vous avez mis dans console.log, puis l'invoquer.

l2i.download();

télécharger un fichier avec des journaux.

2
Alexander Volkov