javascriptでのエラーログ
PHPでのエラーログ取りが思いのほか便利だったので
JSについても簡単にログ取りできないか探したところ、
お手軽な方法があった。
■index.php
<!DOCTYPE HTML>
<html lang="ja">
<head>
<meta charset="UTF-8">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script>
window.onerror = function( errorMsg, url, lineNumber ) {
$.ajax({
url:"./error_dump.php",
data:{errorMsg:errorMsg, url:url, lineNumber:lineNumber},
type:"post"
});
};
</script>
<title>errorlog</title>
</head>
<body>
<h1>errorlog</h1>
<input type="button" value="error!" onClick="error_test();">
</body>
</html>
■error_dump.php
<?php
extract($_POST);
$file = "./error.log";
echo 1;
if ($errorMsg && $errorMsg && $lineNumber) {
$error_body = "
[errorMsg]
" . $errorMsg . "
[url]
" . $url . "
[lineNumber]
" . $lineNumber . "
--------------------
";
file_put_contents($file, $error_body, FILE_APPEND | LOCK_EX);
}
?>
■参考サイト
http://qiita.com/items/0c0e843d16e494fdd621
■その他
index.phpのボタンを押すとerror_test()なんて関数は無いので
エラーが走る。
window.onerrorでエラーを取得する。
※参考サイト
http://www.openspc2.org/JavaScript/ref/window/onerror.htm
エラーを取得したらajaxでerror_dump.phpに
エラーメッセージとファイル名、エラー発生行数を投げる。
受け取ったものをerror.logに追記する。
file_put_contents($file, $error_body, FILE_APPEND | LOCK_EX);
※リファレンス
http://php.net/manual/ja/function.file-put-contents.php
・FILE_APPEND
filename がすでに存在する場合に、データをファイルに上書きするするのではなく追記します。
これつけないと上書きされてしまう。
・LOCK_EX
書き込み処理中に、ファイルに対する排他ロックを確保します。
関連記事
-
-
PHPでAPIを作成しJavaScript(jQuery無し)からリクエストする方法
管理画面等から何らかのデータをMySQLに登録し、そのデータをPHPで作成したA ...
-
-
JavaScriptで三項演算子の中に三項演算子
既存のソースを作り変えている際によく分からないソースがあった。 だいぶ書き換えて ...
-
-
prototypeとjqueryの競合
ちょいちょい見るが、実際に競合をおこしているケースに あたったのでメモ。 ↓↓の ...
-
-
異なる文字コード間でform送信する
formの送り手がUTF-8で受け手がEUC-JP、 なんとかしてjavascr ...
-
-
jquery.cookie.jsで保存期間を時間指定する方法
jquery.cookie.jsで保存期間を1時間等、時間指定したい。公式サイト ...
-
-
formでdisplay:none;にしてても送信される
formで特定の部分をdisplay:none;で非表示にしてても 内容は送信さ ...
-
-
JavaScriptでdisplay:none/blockの切り替え
jQueryだとhide/show使うか、もしくは toggleだけでいいけどJ ...
-
-
leaflet.jsとOSMで現在地の取得
leaflet.jsとOpenStreetMapで現在位置を取得しマップ上にマー ...
-
-
jQueryで年月日と時間のピッカー(datetimepicker)
jQueryで年月日と時間を選択できるピッカーを導入したかった。以前にboots ...
-
-
javascriptでスクロール
やりたかった事は、 ・javascript,jQuery使う ・スクロールさせた ...
- PREV
- MySQLでのエラーについて
- NEXT
- PHPでのファイル関係