PHP 関数のログ機能
PHP アプリケーションを開発していると、通常、ログを必要とする場面に遭遇します。たとえば、プログラムのデバッグ、問題のトラブルシューティング、またはユーザーの行動の追跡が必要な場合、ログは特に重要です。 PHP では、ログ記録のベスト プラクティスは、log 関数を使用することです。この記事では、ログを記録する方法、ログ機能の拡張、使用、設定方法を紹介します。
1. ログ関数の概要
PHP ではシステムがログ関数を提供しており、これらの関数を使用してログを記録できます。 PHP のログ関数には次のものがあります。
実際のアプリケーションでは、通常、ログ記録に error_log() 関数を使用します。
2. error_log() 関数を使用してログを記録する
error_log() 関数の基本的な構文は次のとおりです:
bool error_log ( string $message [, int $message_type [, string $destination [, string $extra_headers ]]] )
そのうちの 1 つは次のとおりです:
$message: 入力されたメッセージをログに書き込みます。
$message_type: 次の 3 つのタイプを指定できます:
$destination: $message_type が 1 の場合、このパラメータはメッセージを送信するための宛先ファイルまたは電子メール アドレスを指定します。 $message_type が 0 の場合、このパラメータは無視されます。 $message_type が 2 の場合、このパラメータはパラメータはシステムの内部ログのタイプを指定します。
$extra_headers: $message_type が 1 の場合、このパラメータは電子メールのヘッダー情報を指定します。
通常、ログをファイルに記録します。次のコードを使用してメッセージをログ ファイルに書き込みます。
$logfile = '/path/to/logfile.log'; error_log($message, 3, $logfile);
これにより、$message が $path/to/logfile に書き込まれます。ログファイルの真ん中。
3. 拡張ログ関数
PHP には set_error_handler() という関数が用意されており、これを使用してログ関数を拡張し、ログの使用と管理を容易にします。
set_error_handler() 関数の基本構文は次のとおりです:
mixed set_error_handler ( callable $error_handler [, int $error_types = E_ALL | E_STRICT ] )
その中に:
$error_handler: カスタム エラー処理関数。クロージャまたは普通の関数。
$error_types: オプション、デフォルト値は E_ALL | E_STRICT で、エラー タイプが指定され、指定されたエラー タイプのエラーのみが処理のために $error_handler 関数に渡されます。
サンプル コードは次のとおりです。
$logfile = '/path/to/logfile.log'; function my_error_handler($errno, $errstr, $errfile, $errline) { $message = "$errno: $errstr in $errfile on line $errline"; error_log($message, 3, $logfile); } set_error_handler('my_error_handler');
これにより、PHP エラーが $path/to/logfile.log ファイルに書き込まれます。
4. Monolog を使用してログを拡張する
もう 1 つのログ作成方法は、サードパーティ ライブラリ Monolog を使用することです。 Monolog は、さまざまなタイプのログを簡単に記録でき、複数のログ送信およびフォーマット方法を提供する人気のある PHP ログ ライブラリです。
Monolog を使用するには、まず Monolog ライブラリをインストールする必要があります。 Composer を使用して Monolog をインストールするコマンドは次のとおりです:
composer require monolog/monolog
インストールが完了したら、次のコードを使用してログを記録できます:
use MonologLogger; use MonologHandlerStreamHandler; $log = new Logger('mylog'); $log->pushHandler(new StreamHandler($logfile, Logger::WARNING)); $log->error('This is an error message.');
これにより、ログ情報が $path に書き込まれます。 /to/logfile.log ファイルの中央。
5. 概要
ロギングは、すべてのアプリケーションが実装する必要がある基本機能の 1 つです。 PHP では、システムが提供するログ関数 error_log()、syslog()、openlog()、および closelog() を使用してログを記録できます。同時に、Monolog などのサードパーティ ライブラリを使用してロギング機能を拡張することもできます。もちろん、よりカスタマイズされた複雑な関数を実装するには、 set_error_handler() 関数を使用して、独自のニーズに合わせてログの処理方法をカスタマイズできます。実際のアプリケーションでは、実際のニーズに応じて最適なロギング方法を選択する必要があります。
以上がPHP関数のログ機能の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。