Как сохранить вывод файла console.log(object) в файл?

Я попытался использовать JSON.stringify(object), но он не опускается по всей структуре и иерархии.

С другой стороны, console.log(object) делает это, но я не могу его сохранить.

В выводе console.log я могу развернуть по одному все дочерние элементы и выбрать и скопировать/вставить, но структура для этого важна.

Ответ 1

Обновление: Теперь вы можете просто щелкнуть правой кнопкой мыши

Щелкните правой кнопкой мыши > Сохранить как на панели консоли, чтобы сохранить записанные сообщения в файл.

Оригинальный ответ:

Вы можете использовать этот фрагмент devtools, показанный ниже, для создания метода console.save. Он создает FileBlob из ввода, а затем автоматически загружает его.

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

Источник: http://bgrins.github.io/devtools-snippets/#console-save

Ответ 2

Для копирования строкового представления указанного объекта в буфер обмена можно использовать "API-интерфейс разработчика Chrome" API командной строки "copy()".

Если у вас много объектов, тогда: Фактически вы можете "JSON.stringify()" всех ваших объектов и продолжать добавлять их в строку. Теперь используйте метод copy(), чтобы скопировать всю строку в clipbard.

Ответ 3

Если вы зарегистрировали объект:

  • Щелкните правой кнопкой мыши на объекте в консоли и нажмите "Сохранить как глобальную переменную"
  • вывод будет чем-то вроде "temp1"
  • введите в консоль копию (temp1)
  • вставить в ваш любимый текстовый редактор

Ответ 4

Существует плагин javascript с открытым исходным кодом, который делает именно это - debugout.js

Debugout.js записывает и сохраняет console.logs, поэтому ваше приложение может получить к ним доступ. Полное раскрытие, я написал это. Он соответствующим образом форматирует различные типы, может обрабатывать вложенные объекты и массивы и может по желанию поставить временную метку рядом с каждым журналом. Он также переключает ведение журнала в одном месте.

Ответ 5

щелкните правой кнопкой мыши на консоли.. нажмите сохранить как.. его это просто.. вы получите выходной текстовый файл

Ответ 6

Вы можете использовать библиотеку l2i (https://github.com/seriyvolk83/logs2indexeddb), чтобы сохранить все, что вы положили в console.log а затем вызовите

l2i.download();

чтобы загрузить файл с журналами.

Ответ 7

Существует еще один инструмент с открытым исходным кодом, который позволяет сохранять все console.log выходные данные в файле на вашем сервере - JS LogFlush (plug!).

JS LogFlush - это интегрированное решение для ведения журнала JavaScript, которое включает в себя:

  • кросс-браузерная замена консоли console.log на стороне клиента.
  • система хранения журналов - на стороне сервера.

Демо

Ответ 8

Много хороших ответов, но почему бы просто не использовать JSON.stringify(your_variable)? Затем возьмите содержимое с помощью копирования и вставки (удалите внешние кавычки).