公開日:2013.05.22

素のPHPとJSでSentryにエラーを送信する

テクログ

Sentryのインストール方法は シゲさん が書いてくれるはずです。
弊社製のFuelPHPのSentryパッケージは ヤマジュンの記事 の通りです。

今回は、素のPHPとJSでSentryに送信してみます。

1. raven-phpのインストール

Composerが使えるなら、Composerを使いましょう。
https://packagist.org/packages/raven/raven

今回は原始的に、GitHubからZIPをDLして使ってみます。
もちろん、Submodule管理でも良いです。
https://github.com/getsentry/raven-php

DLして解凍したディレクトリの”lib/Raven”を、適切な場所に配置します。
フレームワークを使っているなら”Vendor/Raven”とかになります。

2. PHPからSentryに送信

以下、サンプルコードです。


// Autoloader.phpの読込
// Composerを使っているのなら、代わりに vendor/autoload.php を読み込んで下さい。
// その際、これは不要です。
require_once "Vendor/Raven/Autoloader.php";
Raven_Autoloader::register();

// Raven_Clientクラスのインスタンスを生成
$client = new Raven_Client("http://xxx:yyy@example.com:[ポート番号]/[id]");

// メッセージを送信
$client->captureMessage("hello world!");

// 例外を送信
try {
?throw new Exception("Uh oh!");
} catch (Exception $e) {
?$client->captureException($e);
}

URLの類は、Sentry側で確認して下さい。
エラーハンドラ内で $client->captureException するのが基本と思います。
尚、composer.jsonを見ると、raven-php自体はPHP5.2.4以上で動くようです。

3. JSからSentryに送信

以下、サンプルコードです。




URLの類は、Sentry側で確認して下さい。
これで、JSのエラーが発生するとSentryに自動送信されます。
任意送信の方法は ヤマジュンの記事 を参考にして下さい。

4. 備考

ヤマジュンの記事 にも書かれていますが、Sentryへの送信時にHTTP通信が発生するので、ログのノリで仕込んでレスポンスが低下して泣くハメにならないよう、注意が必要そうです。

この記事を書いた人

core-corp

入社年2010年

出身地東京都

業務内容インフラ

特技または趣味ドライブ

core-corpの記事一覧へ

テクログに関する記事一覧