2012-04-18 18 views
6

学校のプロジェクトでは、コンソールウィンドウから入力してそこから実行するjavascriptをいくつか実行しています。このスクリプトはWebページを操作し、結果をコンソールに出力します。Chromeでコンソールログを永続的に保存する

問題:ブラウザの終了、スクリプトの誤動作/ページの再読み込み、または可能であればpcのクラッシュで、これらの結果を永続的に保存/保存してください。

私はLog4jsやjStorage(jQuery Storage)などのフレームワークを使用すると考えていましたが、これは私のウェブサイトではないため、コードやマークアップをページに追加することはできません。

これを行う方法はありますか?

注:コンソールに結果を記録することは重要ではありません。ログをより簡単にするために、別の場所に送信したり、別の操作を行うことができます。

ありがとうございました。

+0

Chromeの:

console.plog = function() { var key = Date.now(); var value = JSON.stringify([].slice.call(arguments)); localStorage.setItem(key, value); console.log.apply(console, arguments); } 

ログを復元するには、次の式を実行する必要があると思いますコンソールログは、ページリロードを超えて持続することができ、組み込みのオプションです。 – katspaugh

+0

ありがとうございます。ディスクロギング機能を試してもうまくいかない場合は役に立ちます –

+0

OPが答えを受け入れなかったことを残念に思います。 – Mawg

答えて

1

使用console.error(arg); - それは(私がリリースビルドでは、それはあまりにも、そうなりますかなり確信している。)ブラウザのstderrにコンソールメッセージを送信します

コマンドラインからブラウザを起動し、stderrをリダイレクトいくつかのファイル(chrome 2>errlogの行に沿ったもの)に変換します。あなたは自動的にこれらのオプションを使用してChromeを実行するためにあなたが持っているクロームコンソールですべてを保存したい場合は

+0

-argsは2> errlogにする必要があります。つまり、レベル2のログがエラーに記録されますerrlog? このファイルをどこに保存すればよいですか?イムマックです。 –

+0

'2> errlog'は、 'errlog'というファイルにstderr(2のハンドルを持つ)をリダイレクトすることを意味します。 –

+1

フルパスを指定しましたが、Chromeを再起動した後にファイルが作成されました。これは良い兆候です。それでも、私が赤いテキストで私に戻って引数を示すいくつかのconsole.error(args)を実行した後、それはテキストファイルに追加されません。テキストファイル内の唯一の行は次のとおりです: [0418/164110:INFO:breakpad_mac.mm(148)]ブレークパッドが無効にされました これはAppleScriptスクリプトで、引数を指定してChromeを開きます: do shell script "/ Applications/Google \\ Chrome.app/Contents/MacOS/Google\\ Chrome - 有効ログ--v = 1 2>/Users/* myusername */Documents/errlog。txt " –

8

--enable-logging --v=1 

それはそのデータディレクトリ内のクロムの完全なログを保存します(ファイルがされることに注意してください各実行時に上書きされます)。詳細はhereです。

別の方法として、SawbuckユーティリティをインストールしてChromeログを管理してください。ここで

+0

ありがとう、私はそれをチェックします! –

+0

私はログファイルを見つけることができないように見えますそれはどこにあるのですか?私はMacで、私はChrome.appのパッケージ内容を確認しました –

+0

〜/Library/Application Support/Google/Chrome/Default、とにかくチェックするhttp://www.chromium.org/for-testers/enable-logging –

7

WebStorageにログを保存する小さな関数は(ブラウザセッション間持続する)です:

(function restoreLogs() { 
    var timestamps = Object.keys(localStorage).sort(); 
    timestamps.forEach(function (ts) { 
     var logArgs = JSON.parse(localStorage.getItem(ts)); 
     console.log.apply(console, logArgs); 
    }); 
}()); 
関連する問題