UbuntuにSentryをインストールしてみた
http://madroom-project.blogspot.jp/2013/04/ubuntusentry.html
Sentryを使ってJavaScriptのエラーレポートを集計してみた
http://madroom-project.blogspot.jp/2013/04/sentryjavascript.html
SentryでJavaScriptのエラーレポート集計が可能になりますが、簡易版みたいなものを自作しようかなと考えています。そしたら、TraceKitというJavaScriptのエラーを購読出来るライブラリが有りました。Sentryもこれを使っているようです。ライセンスはMITと記されています。
https://github.com/occ/TraceKit
早速、使い方を確認してみました。JavaScriptのエラーを購読して、サーバ(PHP)に送信するまでのサンプルを書いておきます。
index.html
* tracekit.jsは前述のGitHubのURL先からDLしました。
* TraceKit自体はjQueryを必要としません。AjaxでPHPに送信する為に使用しています。
<html> <head> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script> <script type="text/javascript" src="tracekit.js"></script> <script> TraceKit.report.subscribe(function myLogger(errorReport) { console.log(errorReport); $.post("receiver.php", { report: errorReport } ); }); </script> </head> <body> <script> var result = undefined_1 + undefined_2; </script> </body> </html>receiver.php
<?php file_put_contents('trace.log', print_r($_POST, true), FILE_APPEND);index.htmlにアクセスしてJavaScriptのエラーを発生させると、その内容がreceiver.phpに送信され、trace.logへ出力されます。
trace.log
Array ( [report] => Array ( [mode] => onerror [message] => Uncaught ReferenceError: undefined_1 is not defined [url] => http://example.com/index.html [stack] => Array ( [0] => Array ( [url] => http://example.com/index.html [line] => 14 [func] => myLogger [context] => Array ( [0] => }); [1] => </script> [2] => </head> [3] => <body> [4] => <script> [5] => var result = undefined_1 + undefined_2; [6] => </script> [7] => </body> [8] => </html> [9] => ) ) ) [useragent] => Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.43 Safari/537.31 ) )
これは便利だ。。。
No comments:
Post a Comment