私は非常に興味深い問題を抱えています。私にとって良い解決策を持っている人がいるかどうか疑問に思います:
考えられるすべてのエラーをログ ファイルに記録しています。例外、致命的なエラー、警告、通知、JS エラー (Ajax 経由で送信) などを含む...
ここで、デバッグの目的で、これらすべてのエラーを HTML ページにも表示したいと思いました (そのため、ログ ファイルを確認する必要はありません)。
このため、すべての新しいエラーをセッション変数内に保存しています。ユーザーがそれを見たとき、それはセッションから削除されています。
私の問題:
エラー/例外の php-backtrace には多くの情報が含まれています。$_SESSION のようなグローバル変数を含みます。
また、すべての情報をセッションに保存するため、エラーが発生するたびにセッション サイズが 2 倍になります。(セッション内の各エラー メッセージには、このエラーが発生する前のセッションの内容全体が含まれます)
例えば:
エラーなし:
$_SESSION = array();
最初のエラー:
$_SESSION = array(error1=>array("msg"="foo", session=array()));
2 番目のエラー:
$_SESSION = array(error1=>array("msg"="foo", session=array()), error2 => array("msg"="foo2", session = array(error1=>array("msg"="foo", session=array()))));
(これは単純化された例です)
エラーが 5 回発生した後、セッションはすでに大きすぎて、ローカル サーバーからロードできなくなりました (タイムアウト)。
5 または sth の深さの後に、配列からすべての要素を切り取ることを考えました。そのように。または、php がグローバル変数をバックトレースに保存しないようにすることは可能ですか?
現時点では、トレースをセッションに保存していませんが、基本的なトレース情報を引き続き表示できるより良い解決策を誰かが知っている可能性があります