私は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)
あなたが記録したオブジェクトを持っている場合:
Store as a global variable
をクリックしますtemp1
のようになります。copy(temp1)
指定したオブジェクトの文字列表現をクリップボードにコピーするには、 Chrome DevToolsユーティリティAPI copy()
コマンド を使用できます。
たくさんのオブジェクトがある場合は、実際にはすべてのオブジェクトをJSON.stringify()して、それらを文字列に追加し続けることができます。 copy()
メソッドを使って完全な文字列をクリップボードにコピーします。
まさにそれをするオープンソースのJavaScriptプラグインがあります - debugout.js
Debugout.jsはconsole.logsを記録して保存し、アプリケーションからアクセスできるようにします。完全な開示、私はそれを書きました。さまざまな型を適切にフォーマットし、入れ子になったオブジェクトや配列を処理し、オプションで各ログの横にタイムスタンプを付けることができます。ライブロギングも一箇所で切り替えます。
コンソールを右クリックしてください。名前を付けて保存をクリックしてください。これは簡単です。出力テキストファイルが表示されます。
あなたのサーバ上のファイルにすべてのconsole.log
出力を保存することを可能にする別のオープンソースツールがあります - JS LogFlush (plug!)。
JS LogFlushは、以下のJavaScript統合ロギングソリューションです。
- ブラウザ間のUIなしのconsole.logの置き換え - クライアント側。
- ログストレージシステム - サーバー側.
ライブラリl2i
( https://github.com/seriyvolk83/logs2indexeddb )を使用して、console.log
に保存したすべてを保存してから呼び出すことができます。
l2i.download();
ログ付きのファイルをダウンロードします。