回答:
私は同じことをする必要があり、これは私が見つけた解決策です:
フラグを使用してコマンドラインからログを有効にします。
--enable-logging --v=1
これにより、Chromeが内部で行うすべてのことが記録されますが、すべてのconsole.log()
メッセージも記録されます。ログファイルが呼び出さchrome_debug.log
れ、にありUser Data Directory
ます。
取得するログファイルを行でフィルタリングしますCONSOLE(\d+)
。
と一緒にコンソールログが表示されないことに注意してください--incognito
。
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --enable-logging --v=1
でログが保存された状態でも動作します~/Library/Application Support/Google/Chrome/chrome_debug.log
console.log()
行はそのファイルのどこにもありません。誰かがこれを修正していますか?
Chrome開発ツールで、コンソール出力をファイルにネイティブに保存できるようになりました
Chromeデベロッパー向けの手順はこちら。
{a: 1, b: 2, c: 3, ...}
。
それを行うオープンソースのjavascriptプラグインがありますが、どのブラウザー用でも-debugout.js
Debugout.jsは、アプリケーションがアクセスできるようにconsole.logsを記録して保存します。完全な開示、私はそれを書きました。さまざまなタイプを適切にフォーマットし、ネストされたオブジェクトと配列を処理でき、オプションで各ログの横にタイムスタンプを付けることができます。また、すべてのログステートメントを削除せずに、1か所でライブログを切り替えることもできます。
私はこれのための素晴らしくて簡単な方法を見つけました。
コンソールで-コンソールに記録されたオブジェクトを右クリックします
「グローバル変数として保存」をクリックします
新しい変数の名前を確認します-たとえば、それはvariableName1です。
コンソールに入力:JSON.stringify(variableName1)
可変文字列の内容をコピーします。例:{"a":1、 "b":2、 "c":3}
これは役立つ場合とそうでない場合がありますが、Windowsでは、Event Tracing for Windowsを使用してコンソールログを読み取ることができます。
http://msdn.microsoft.com/en-us/library/ms751538.aspx
統合テストは.NETで実行されるため、この方法を使用してコンソールログをテスト出力に追加します。ここでデモンストレーションするサンプルコンソールプロジェクトを作成しました:https : //github.com/jkells/chrome-trace
--enable-logging --v = 1は最新バージョンのChromeでは機能しないようです。
良い答えはたくさんありますが、JSON.stringify(your_variable)を使用しないのはなぜですか?次に、コンテンツをコピーして貼り付けます(外側の引用符を削除します)。私もこの同じ答えを投稿しました:console.log(object)の出力をファイルに保存する方法は?
すべてのconsole.log
出力をサーバー上のファイルに保存できる別のオープンソースツール、JS LogFlush(plug!)があります。
JS LogFlushは、以下を含む統合されたJavaScriptロギングソリューションです。
- クロスブラウザUIを使用しないconsole.logの置き換え-クライアント側。
- ログストレージシステム-サーバー側。
ローカルホストでApacheサーバーを実行している場合(運用サーバーではこれを行わないでください)、結果をコンソールに書き込む代わりにスクリプトに投稿することもできます。
したがって、の代わりにconsole.log
、次のように書くことができます。
JSONP('http://localhost/save.php', {fn: 'filename.txt', data: json});
その後save.php
、これを行うことができます
<?php
$fn = $_REQUEST['fn'];
$data = $_REQUEST['data'];
file_put_contents("path/$fn", $data);
このスレッドの他のソリューションは私のMacでは動作しませんでした。以下は、ajaxを使用して断続的に文字列表現を保存するロガーです。console.save
代わりにそれを使うconsole.log
var logFileString="";
var maxLogLength=1024*128;
console.save=function(){
var logArgs={};
for(var i=0; i<arguments.length; i++) logArgs['arg'+i]=arguments[i];
console.log(logArgs);
// keep a string representation of every log
logFileString+=JSON.stringify(logArgs,null,2)+'\n';
// save the string representation when it gets big
if(logFileString.length>maxLogLength){
// send a copy in case race conditions change it mid-save
saveLog(logFileString);
logFileString="";
}
};
必要に応じて、その文字列を保存するか、それだけconsole.log
をコピーして貼り付けます。保存したい場合のためのajaxを以下に示します。
function saveLog(data){
// do some ajax stuff with data.
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function(){
if (this.readyState == 4 && this.status == 200) {}
}
xhttp.open("POST", 'saveLog.php', true);
xhttp.send(data);
}
これsaveLog.php
により、ログファイルのどこかにデータが追加されます。その部分は必要なかったので、ここには含めません。:)