ホームページ  >  記事  >  バックエンド開発  >  PHPでエラーログをファイルに書き込む方法

PHPでエラーログをファイルに書き込む方法

青灯夜游
青灯夜游オリジナル
2021-09-02 13:55:093235ブラウズ

php メソッドでエラー ログをファイルに書き込みます: 1. 設定ファイル php.ini で、「error_log」項目を検索し、ログ ファイルのパスを設定します。 2. error_log() を使用します。エラーログを書き込む関数 設定したログファイルの構文は「error_log(記録するエラー情報, 0);」となります。

PHPでエラーログをファイルに書き込む方法

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

独自の指定されたコンピューターを使用する場合エラー ログを記録するファイルを作成する場合は、攻撃される可能性を減らすために、このファイルがドキュメント ルート ディレクトリの外に保存されていることを確認してください。また、ファイルは 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。