How to save the output of a console.log(object) to a file?

JavascriptJsonGoogle Chrome

Javascript Problem Overview


I tried using JSON.stringify(object), but it doesn't go down on the whole structure and hierarchy.

On the other hand console.log(object) does that but I cannot save it.

In the console.log output I can expand one by one all the children and select and copy/paste but the structure is to big for that.

Javascript Solutions


Solution 1 - Javascript

Update: You can now just right click

> Right click > Save as in the Console panel to save the logged messages to a file.

Original Answer:

You can use this devtools snippet shown below to create a console.save method. It creates a FileBlob from the input, and then automatically downloads it.

(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

Solution 2 - Javascript

UPDATE (06/2021):

Google added a menu action to copy objects. Right click on the object and then click Copy object

enter image description here

OLD ANSWER:

In case you have an object logged:

  • Right click on the object in console and click Store as a global variable

  • the output will be something like temp1

  • type in console copy(temp1)

  • paste to your favorite text editor

Solution 3 - Javascript

You can use the Chrome DevTools Utilities API copy() command for copying the string representation of the specified object to the clipboard.

If you have lots of objects then you can actually JSON.stringify() all your objects and keep on appending them to a string. Now use copy() method to copy the complete string to clipboard.

Solution 4 - Javascript

There is an open-source javascript plugin that does just that - debugout.js

Debugout.js records and save console.logs so your application can access them. Full disclosure, I wrote it. It formats different types appropriately, can handle nested objects and arrays, and can optionally put a timestamp next to each log. It also toggles live-logging in one place.

Solution 5 - Javascript

This is really late to the party, but maybe it will help someone. My solution seems similar to what the OP described as problematic, but maybe it's a feature that Chrome offers now, but not then. I tried right-clicking and saving the .log file after the object was written to the console, but all that gave me was a text file with this:

> console.js:230 Done: Array(50000)[0 … 9999][10000 … 19999][20000 … > 29999][30000 … 39999][40000 … 49999]length: 50000__proto__: Array(0)

which was of no use to anyone.

What I ended up doing was finding the console.log(data) in the code, dropped a breakpoint on it and then typed JSON.Stringify(data) in the console which displayed the entire object as a JSON string and the Chrome console actually gives you a button to copy it. Then paste into a text editor and there's your JSON

enter image description here

Solution 6 - Javascript

There is another open-source tool that allows you to save all console.log output in a file on your server - JS LogFlush (plug!).

> JS LogFlush is an integrated JavaScript logging solution which include: > > - cross-browser UI-less replacement of console.log - on client side. > - log storage system - on server side.

Demo

Solution 7 - Javascript

right click on console.. click save as.. its this simple.. you'll get an output text file

Solution 8 - Javascript

You can use library l2i (https://github.com/seriyvolk83/logs2indexeddb) to save all you put into console.log and then invoke

l2i.download();

to download a file with logs.

Solution 9 - Javascript

Right click on object and saving was not available for me.

The working solution for me is given below

Log as pretty string shown in this answer

console.log('jsonListBeauty', JSON.stringify(jsonList, null, 2));

in Chrome DevTools, Log shows as below

saveJsonlog

Just press Copy, It will be copied to clipboard with desired spacing level

Paste it on your favorite text editor and save it


> image took on 15/02/2021, Google Chrome Version 88.0.4324.150

Solution 10 - Javascript

A more simple way is to use fire fox dev tools, console.log(yourObject) -> right click on object -> select "copy object" -> paste results into notepad

thanks.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionEduard FlorinescuView Question on Stackoverflow
Solution 1 - JavascriptPatrickView Answer on Stackoverflow
Solution 2 - JavascriptMarsRobotView Answer on Stackoverflow
Solution 3 - JavascriptbthotaView Answer on Stackoverflow
Solution 4 - JavascriptinorganikView Answer on Stackoverflow
Solution 5 - JavascriptAdam HeyView Answer on Stackoverflow
Solution 6 - JavascripthindmostView Answer on Stackoverflow
Solution 7 - JavascriptAkhil_SView Answer on Stackoverflow
Solution 8 - JavascriptAlexander VolkovView Answer on Stackoverflow
Solution 9 - JavascriptmajurageerthanView Answer on Stackoverflow
Solution 10 - JavascriptGoon CrafterView Answer on Stackoverflow