• English日本語한국어
  • ログイン今すぐ開始

この機械翻訳は参考用に提供されます。

英語版と翻訳版に矛盾がある場合は、英語版が優先されます。詳細については、こちらのページをご覧ください。

問題を作成する

PHPエージェントがエラーを報告しない

問題

アプリケーションのエラーが、期待通りにPHPエージェントに報告されない、または捕捉されない。

解決

サードパーティのエラーハンドラ を使用している場合(例: XDebug または Laravel のエラーハンドラ):

  1. サードパーティのエラーハンドラを無効にする。
  2. エラーが報告されていることを確認するには、 APM errors page を参照してください。

サードパーティ製のエラーハンドラを使用していない場合 それでも期待したエラーが表示されない場合(例:404エラー)。

  1. PHP がエラーを処理していることを確認してください。なぜなら、New Relic は PHP が認識できないエラー (Web サーバー上の静的資産の 404 エラーなど) を報告できないからです。
  2. newrelic_notice_error() API 呼び出しを使用して、発生が予想されるエラーを手動で計測します。
  3. エラーが報告されていることを確認するには、 APM errors page を参照してください。

原因

PHPはエラーを自身のデフォルトハンドラで処理します。XDebugやLaravelのエラーハンドラのような多くのサードパーティのハンドラは、しばしばPHPのデフォルトハンドラを上書きし、PHPの代わりにエラーを捕捉します。

PHPエージェントには独自のエラーハンドラがあり、PHPがエラーを捕捉することに依存しています。1つのエラーを処理できるのは1つのハンドラーだけなので、エージェントは、PHPに捕捉される前にサードパーティのハンドラーによって既に処理されたエラーを見ることはありません。

さらに、一部のエラー (例: 404 エラー) は Web サーバー レベルで発生することがよくあります。これは、PHP が関与することはなく、エラーがエージェントによってキャプチャされることもありません。PHP を使用して 404 エラーを処理する場合は、 newrelic_notice_error() API 呼び出しを使用してこれらのエラーを手動で計測します。

Copyright © 2024 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.