0

サーバーで発生したすべての PHP および MySQL エラーを示すレポート/ログはありますか? 可能であれば、日付、時刻、一部のユーザー情報 (ブラウザー、IP)、および発生したエラーの数。

さらに、失敗するたびに、mysql_queryメッセージが含まれているファイルから取得されます。

$error_message[0] = 'Error no. 0!';
$error_message[1] = 'Error no. 1!';
$error_message[2] = 'Error no. 2!';

どのメッセージがいつ表示されたかを監視する方法はありますか?

4

5 に答える 5

1

はい、httpd(またはapache)とmysqldの両方のエラーログがあります。

あなたはそれらを見つけます:

/var/log/httpd/error_log
/var/log/mysqld.log

(これらのパスは、構成ファイルによってサーバーによって少し異なる場合があります。たとえば、mysqldに--log-error = XXXオプションを渡してmysqlエラーログファイルの場所を指定できます)

于 2012-09-11T13:37:37.470 に答える
1

「die()」呼び出しの代わりに例外に固執し、それらをキャッチしてからログに記録することで、それを行うことができます。

そのための良い解決策は、例えばです。Sentry - 必要な方法で情報を保存します (発生時刻、詳細、発生回数、ロガー/カテゴリ、レベルなど)。

于 2012-09-11T13:41:18.690 に答える
0

「どのメッセージがいつ表示されたかを監視する方法はありますか?」

これは主な質問ではありませんが、公開されたエラーメッセージが心配な場合は、PHPでエラーを表示しないようにするだけで済みます。つまり、実際には、訪問者にもMySQLエラーが表示されません(MySQLで作業しているのはPHP、Webアプリケーションについて話している場合)

それは役立つかもしれません!:)

于 2012-09-11T13:43:22.363 に答える
0

/var/logs/apache/または/var/logs/httpd/それが Linux / UNIX サーバーであるかどうかを調べます。

于 2012-09-11T13:38:15.233 に答える
0

それでうまくいくと思いますtry, catchか?考えられるすべてのエラーをキャッチするには、どこでも使用する必要があります。

try, catch独自の MySQL アダプタ クラスを作成して、元の関数をブロック内にラップすることもできます。これをコードに適用できれば簡単になりますが、PHP エラーの場合は、ファイル システムでの作業など、try, catch手動でブロックを使用して致命的なエラーが発生する可能性のある部分をカバーする必要があります。

それらをデータベースまたはファイル システムに記録する場合は、明らかに日付と時刻も記録できます。

PHP マニュアル/例外

注: オーバーヘッドも考慮してください。try, catchブロックを使用した後にコードがどれだけ遅くなるかをベンチマークすることができます。

于 2012-09-11T20:22:30.800 に答える