ホームページ  >  記事  >  バックエンド開発  >  PHP出力ログ

PHP出力ログ

不言
不言オリジナル
2018-04-17 09:02:4216273ブラウズ

この記事の内容は、一定の参考価値のあるPHP出力ログに関するもので、必要な友人が参照できるようにしています

https://www.cnblogs.com/yszr から転載しました。 /p /8489433.html
error_log('出力したい情報', 3, 'E:workjiajiayueApplicationApiController1.txt');die;
php error_log ログの使用状況と設定を記録します


PHP 開発者にとって、ある特定のときに製品を使用する場合は、パス、データベース接続、データ テーブル、およびこれらのエラーによって公開されるその他の情報によるハッカーによる攻撃を避けるために、display_errors オプションを直ちにオフにする必要があります。しかし、どのような製品でも使用後は必ずエラーが発生します。開発者に役立つエラー レポートを記録するにはどうすればよいでしょうか?エラーレポートを別のテキストファイルに記録できます。エラー ログの記録は、開発者や管理者がシステムに問題があるかどうかを確認するのに役立ちます。 プログラム内のエラー レポートをエラー ログに書き込む必要がある場合は、PHP 設定ファイルで設定ディレクティブ log_errors を有効にするだけです。エラー レポートは、デフォルトで Web サーバーのログ ファイル (たとえば、Apache サーバーのエラー ログ ファイル error.log) に記録されます。もちろん、エラー ログを指定したファイルに記録したり、システムの syslog に送信したりすることもできます。詳細は次のとおりです。


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


エラーレポートログを記録する場合は、指定したファイルを使用してエラーレポートログを記録します。 指定したファイルを使用してエラーレポートログを記録する場合は、必ずこのファイルを保存してください。攻撃される可能性を減らすために、ドキュメントのルート ディレクトリの外に配置します。また、このファイルは、PHP スクリプトを実行するユーザー (Web サーバー プロセスの所有者) によって作成される必要があります。 Linux オペレーティング システムでは、/usr/local/ ディレクトリの error.log ファイルがエラー ログ ファイルとして使用され、Web サーバー プロセス ユーザーに書き込み権限が設定されているとします。次に、PHP 構成ファイルで、error_log ディレクティブの値をエラー ログ ファイルの絶対パスに設定します。
php.ini の設定手順を次のように変更する必要があります:
1. error_reporting = E_ALL ; 発生したすべてのエラーは PHP に報告されます
2. display_errors = Off log_errors = オン使用する 使用する 使用する 使用する 使用するthrough using ‐ ' 's ' ‐ ‐ ‐‐‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐  ‐         ; ログファイルを設定した後、書き込むエラーレポートを指定します。上記のように
PHP 設定ファイルを配置し、Web サーバーを再起動します。このようにして、PHP スクリプト ファイルを実行するときに、生成されたすべてのエラー レポートはブラウザーには表示されませんが、指定したエラー ログ /usr/local/error.log に記録されます。さらに、error_reporting で定義されたルールを満たすすべてのエラーを記録できるだけでなく、PHP の error_log() 関数を使用してユーザー定義のエラー メッセージを送信することもできます。



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

1. bool error_log ( string message [, int message_type [, string destination [, string extra_headers]]] )

この関数はsend エラー情報は、Web サーバー、TCP サーバーのエラー ログ ファイル、または指定されたファイルに送信されます。この関数は、成功した場合は TRUE を返し、失敗した場合は FALSE を返します。最初のパラメータ メッセージは必須であり、送信されるエラー メッセージです。このパラメータのみを使用した場合、メッセージは設定ファイル php.ini で設定された場所に送信されます。 2 番目のパラメータ message_type は整数値です。0 はメッセージをオペレーティング システムのログに送信することを意味し、1 は PHP の Mail() 関数を使用してメッセージを電子メール アドレスに送信し、4 番目のパラメータ extra_headers も使用されます。エラー メッセージを TCP サーバーに送信します。このとき、3 番目のパラメーターの宛先は宛先 IP とポートを表します。 3. 情報をファイルの宛先に保存します。

Oracle データベースへのログインの問題を例にとると、この関数の使用法は次のようになります:




1. <?php      
2.     if(!Ora_Logon($username, $password)){     
 3.         error_log("Oracle数据库不可用!", 0);        //将错误消息写入到操作系统日志中   
4.     }   
5.     if(!($foo=allocate_new_foo()){   
6.         error_log("出现*烦了!", 1, ". mydomain.com");   //发送到管理员邮箱中   
7.     }  
8.     error_log("搞砸了!",   2,   "localhost:5000");     //发送到本机对应5000端口的服务器中   
9.     error_log("搞砸了!",   3,   "/usr/local/errors.log");  //发送到指定的文件中   
10. ?>





2. エラー情報はオペレーティングシステムのログに記録されます


エラー情報はオペレーティングシステムのログに記録されます。 . エラーレポート オペレーティングシステムのログにも記録できますが、ログ管理はオペレーティングシステムによって若干異なります。 Linux ではエラー ステートメントは syslog に送信され、Windows ではエラーはイベント ログに送信されます。 syslog に詳しくない場合でも、syslog がシステムおよびアプリケーションの実行に関連するメッセージを記録する API を提供する UNIX ベースのロギング ツールであることだけは知っておいてください。 Windows イベント ログは実際には UNIX syslog と同じであり、これらのログは通常、イベント ビューアを介して表示できます。エラー レポートをオペレーティング システム ログに書き込む場合は、構成ファイルで error_log ディレクティブの値を syslog に設定できます。


php.ini で変更する必要がある具体的な設定手順は次のとおりです:


1. error_reporting  =  E_ALL                   ;将会向PHP报告发生的每个错误   
2. display_errors = Off                            ;不显示 满足上条指令所定义规则的所有错误报告   
3. log_errors = On                             ;决定日志语句记录的位置   
4. log_errors_max_len = 1024                   ;设置每个日志项的最大长度   
5. error_log = syslog                          ;指定产生的错误报告写入操作系统的日志里




一般的なエラー出力に加えて、PHP ではカスタマイズされたメッセージをシステム syslog に送信することもできます。カスタマイズされたメッセージは、前に紹介した error_log() 関数を通じて syslog に送信することもできますが、PHP には、この機能のために一緒に使用する必要がある 4 つの専用関数が用意されています。


は次のように導入されます:


define_syslog_variables()


この関数は、openlog()、syslog、closelog() の 3 つの関数を使用する前に呼び出す必要があります。この関数が呼び出されると、現在のシステム環境に基づいて次の 3 つの関数に必要な定数が初期化されるためです。


openlog()


現在のシステムでロガーへの接続を開き、システムにログ メッセージを挿入する準備をします。また、指定された最初の文字列パラメータを各ログ メッセージに挿入します。この関数では、ログ コンテキストで使用される 2 つのパラメータも指定する必要があります。使用方法については、公式ドキュメントを参照してください。


syslog()


この関数は、カスタマイズされたメッセージをシステム ログに送信します。 2 つの必須パラメータが必要です。最初のパラメータは定数を指定してメッセージの優先度をカスタマイズします。たとえば、LOG_WARNING は一般的な警告を表し、LOG_EMERG はシステム クラッシュを示す可能性のある重大な問題を表し、重大度を示すその他の定数は公式ドキュメントに従って使用できます。 2 番目のパラメーターは、システム ログに送信されるカスタマイズされたメッセージです。実行時に PHP エンジンによって提供されるメッセージ文字列またはエラー文字列を指定する必要があります。


closelog()


この関数は、カスタマイズされたメッセージをシステム ログに送信した後に呼び出され、openlog() 関数によって開かれたログ接続を閉じます。





カスタマイズされたメッセージを syslog に送信する指示が設定ファイルで有効になっている場合は、前に紹介した 4 つの関数を使用して警告メッセージをシステム ログに送信し、syslog 解析ツールを通じて表示できます。次に示すように、PHP プログラムによって送信されたカスタマイズされたメッセージを分析します。


1.  
2.     define_syslog_variables();   
3.     openlog("PHP5", LOG_PID , LOG_USER);   
4.     syslog(LOG_WARNING, "警告报告向syslog中发送的演示, 警告时间:".date("Y/m/d H:i:s"));  
5.     closelog();   
6. ?>

Windows システムを例として、「マイ コンピュータ」を右クリックして管理オプションを選択し、システム ツール メニューから [イベント ビュー エクスプローラー] を選択し、アプリケーション オプションを見つけると、カスタマイズされた警告メッセージが表示されます。上記のコードは、システムの syslog ファイルに次のようなメッセージを生成します。これはイベントの一部です:


1. PHP5[3084]、警告レポートを syslog に送信するデモ、警告時刻: 2009/03/ 26 04:09:11.


エラー ログの記録に指定したファイルを使用するか、syslog を使用するかは、Web サーバーの環境によって異なります。 Web サーバーを制御できる場合は、syslog 解析ツールを使用してログを表示および分析できるため、syslog の使用が理想的です。ただし、Web サイトが共有サーバー上の仮想ホストで実行されている場合、エラー ログの記録には別のテキスト ファイルしか使用できません。

関連する推奨事項:

phpはすべてのタイムゾーンリストを出力します

phpはログ関数を書き込みます

phpはログ関数を実装します

以上がPHP出力ログの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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