ホームページ > バックエンド開発 > PHPの問題 > PHPでエラーログを設定する方法

PHPでエラーログを設定する方法

青灯夜游
リリース: 2023-03-11 17:52:02
オリジナル
2533 人が閲覧しました

設定方法:php.iniファイルを開き、「error_reporting=E_ALL」、「display_errors=Off」、「log_errors=On」、「error_log = E:/php_log/php_error.log」などを設定します。

PHPでエラーログを設定する方法

このチュートリアルの動作環境: Windows7 システム、PHP7.1 バージョン、DELL G3 コンピューター

PHP 開発者向けに、あるときプロジェクトが使用されるようになったら、パス、データベース接続、データ テーブル、およびこれらのエラーによって公開されるその他の情報によるハッカーによる攻撃を避けるために、構成ファイル php.ini の display_errors オプションをすぐにオフにする必要があります。しかし、プロジェクトが使用されると必ずエラーが発生します。開発者にとって役立つエラー レポートを記録するにはどうすればよいでしょうか?

エラー レポートを別のテキスト ファイルのログとして記録できます。エラー ログの記録は、開発者や管理者がシステムに問題があるかどうかを確認するのに役立ちます。プログラム内のエラー レポートをエラー ログに書き込む必要がある場合は、PHP 構成ファイルの構成項目 log_errors をオンにするだけです。

エラー レポートは、デフォルトで Web サーバーのログ ファイル (たとえば、Apache サーバーのエラー ログ ファイル error.log) に記録されます。もちろん、エラーログを指定したファイルに記録することも可能です。

#指定したファイルを使用してエラー レポート ログを記録する

独自の指定したファイルを使用してエラー ログを記録する場合は、次のようにします。攻撃の可能性を減らすために、このファイルがドキュメント ルート ディレクトリの外側に保存されていることを確認してください。また、ファイルは PHP スクリプトに書き込み権限を与える必要があります。 Linux オペレーティング システムでは、/usr/local/ ディレクトリの error.log ファイルがエラー ログ ファイルとして使用され、Web サーバー プロセス ユーザーに書き込み権限が設定されているとします。次に、PHP 構成ファイルで、error_log ディレクティブの値をエラー ログ ファイルの絶対パスに設定します。

php.ini の構成指示を次のように変更する必要があります:

error_reporting  =  E_ALL                             // 将会向PHP报告发生的每个错误  
display_errors = Off                                     // 不显示满足上条 指令所定义规则的所有错误报告  
log_errors = On                                           // 决定日志语句记录的位置  
log_errors_max_len = 1024                         // 设置每个日志项的最大长度  
error_log = E:/php_log/php_error.log         // 指定产生的错误报告写入的日志文件位置
ログイン後にコピー

PHP 構成ファイルを上記のように設定した後、Web サーバーを再起動します。このようにして、PHP スクリプト ファイルを実行するときに、生成されたすべてのエラー レポートはブラウザーには表示されませんが、指定したエラー ログ E:/php_log/php_error.log に記録されます。

さらに、error_reporting で定義されたルールを満たすすべてのエラーを記録できるだけでなく、PHP の error_log() 関数を使用して、エラー情報を Web サーバーのエラー ログに送信したり、ファイル。

error_log() 関数のプロトタイプは次のとおりです:

error_log ( string $message [, int $message_type = 0 [, string $destination [, string $extra_headers ]]] ) : bool
ログイン後にコピー

パラメータの説明は次のとおりです:

    $message:記録する必要があるエラー メッセージ ;
  • $message_type: エラーの送信先を設定します。可能なメッセージ タイプは次のとおりです:
    • 0: (デフォルト) 構成ファイルで設定されている error_log に応じて、オペレーティング システムのログ メカニズムまたはファイルを使用して、$message を PHP のシステム ログに送信します。注※1:パラメータ$destinationで設定したメールアドレスに$messageを送信します。 4 番目のパラメーター $extra_headers は、このタイプでのみ使用されます;
    • 2: (非推奨) はオプションではなくなりました;
    • 3: $message は、$destination ファイルの場所に送信されます。文字 $message はデフォルトでは改行として扱われません;
    • 4: $message を SAPI ログ ハンドラーに直接送信します。
    • $destination: 宛先。エラー メッセージの送信先です。その意味は上記で説明されており、$message_type パラメータによって決定されます;
  • $extra_headers: 追加のヘッダー。 $message_type が 1 に設定されている場合に使用されます。このメッセージ タイプは、mail() の同じ組み込み関数を使用します。
  • [例] Mysql データベースへのログインを例として、ログインが失敗した場合にエラー メッセージをログに記録します。
  • <?php
        $link = mysqli_connect("127.0.0.1", "my_user", "my_password", "my_db");
        if (!$link) {
            error_log(&#39;Mysql 数据库连接失败!&#39;,0);
            exit();
        }
    ?>
    ログイン後にコピー
上記のコードを実行すると、php.ini 構成ファイルの error_log 項目で設定されたディレクトリに、対応するエラー ログ ファイルが生成されます。ファイルの内容は次のとおりです:

[08-May-2020 13:17:31 PRC] PHP Warning:  mysqli_connect(): (HY000/1045): Access denied for user &#39;my_user&#39;@&#39;localhost&#39; (using password: YES) in D:\WWW\index.php on line 2
[08-May-2020 13:17:31 PRC] Mysql 数据库连接失败!
ログイン後にコピー

推奨される学習: 「

PHP ビデオ チュートリアル

>>

以上がPHPでエラーログを設定する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート