2012-12-07 13 views
10

javascriptでコンソールの履歴を取得する方法があるかどうかを知りたいと思います。コンソールの履歴を取得する

私はコンソール履歴に何を意味するのかは、devツールコンソールに表示されます。 例えば、私はdev_ツールに表示されているすべてのエラー、警告、情報、ログをhtmlページに出力しないで印刷したいと思っています。

わかりません。

+0

http://www.whathaveyoutried.com/?これはウェブサイトやブラウザプラグインで実行する必要がありますか?あなたのターゲットブラウザは何ですか?この情報を質問/タグに追加してください。 – rekire

+0

あなたがしようとしていることの詳細な説明をしてください。それだけで私たちはあなたを助けることができます。 –

答えて

1

Chromeの拡張機能はexperimental.devtools.console、そのためのAPIを持っていた:

chrome.experimental.devtools.console.getMessages(function(messages) { }) 

このAPIは削除されました。その後、

+9

リンクが死んでいて、 'chrome.experimental => undefined' – Sigfried

+0

「実験的」が有効な単語です – vothaison

1

JavaScriptを使用してコンソールデータを取得する方法はありません。あなたがそれを行うことができる唯一の方法は、基本的にすべてのコンソール機能をハイジャックし、コピーを保存し、デフォルトのログ行を呼び出すことです。

1
console.history = []; 
var oldConsole = {}; 
for (var i in console) { 
    if (typeof console[i] == 'function') { 
     oldConsole[i] = console[i]; 
     var strr = '(function(){\ 
      console.history.push({func:\'' + i + '\',args : Array.prototype.slice.call(arguments)});\ 
      oldConsole[\'' + i + '\'].apply(console, arguments);\ 
     })'; 
     console[i] = eval(strr); 
    } 
} 

と歴史

+0

Chromeで動作しません63 – Bright

7

にアクセスするためにconsole.historyを使用し、私はconsole.historyと呼ばれ、このためのシンプルなクロスブラウザライブラリを書きました。これは、GitHubの上で利用可能です: https://git.io/console

何ライブラリは基本的にないことconsole.[log/warn/error/debug/info]に対するすべての呼び出しをキャッチし、console.history配列に格納されます。ボーナスとして、完全なスタックトレースも追加されます。

テストファイルtest.jsは含まれています

function outer() { 
    inner(); 
} 

function inner() { 
    var array = [1,2,3]; 
    var object = {"foo": "bar", "key": "value"}; 
    console.warn("Something went wrong, but we're okay!", array, object); 
} 

outer(); 

console.historyへのエントリーは次のようになります。

{ 
    "type": "warn", 
    "timestamp": "Thu, 01 Sep 2016 15:38:28 GMT", 
    "arguments": { 
    "0": "Something went wrong, but we're okay!", 
    "1": [1, 2, 3], 
    "2": { 
     "foo": "bar", 
     "key": "value" 
    } 
    }, 
    "stack": { 
    "0": "at inner (http://localhost:1337/test/test.js:6:11)", 
    "1": "at outer (http://localhost:1337/test/test.js:2:3)", 
    "2": "at http://localhost:1337/test/test.js:9:1" 
    } 
} 
+1

これは受け入れられる回答である必要があります。 – Darkrum

関連する問題