web-dev-qa-db-ja.com

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

PHPコードの実行時にエラーログファイルにメッセージを書き込みたい。

PHP error_log()関数 Docs を使用しようとしています。

しかし、それは私にとって適切に機能していません。

64
Vasant

PHPドキュメンテーション に従って、php.iniファイルを変更したくない場合は、これを行うことができます。

error_log("Error message\n", 3, "/mypath/php.log");

最初のパラメーターは、ログに送信される文字列です。 2番目のパラメーター3は、ファイルの宛先を予期することを意味します。 3番目のパラメーターはログファイルのパスです。

100
suspectus

単に使用できます:

error_log("your message");

デフォルトでは、メッセージはphpシステムロガーに送信されます。

34
SkaJess

PHPはphp_errors.logファイルにエラーを保存することを皆知っています。

しかし、そのファイルには多くのデータが含まれています。

アプリケーションデータを記録する場合は、カスタムの場所に保存する必要があります。

Error_log関数で2つのパラメーターを使用してこれを実現できます。

http://php.net/manual/en/function.error-log.php

以下を使用して実行できます。

error_log(print_r($v, TRUE), 3, '/var/tmp/errors.log');

どこ、

print_r($v, TRUE) :は、ログファイルに$ v(配列/文字列/オブジェクト)を記録します。 3:3番目のパラメーターで指定されたカスタムログファイルにログメッセージを書き込みます。

'/var/tmp/errors.log':カスタムログファイル(このパスはLinux用です。OSに応じて他のパスを指定できます)。

または、file_put_contents()を使用できます

file_put_contents('/var/tmp/e.log', print_r($v, true), FILE_APPEND);

どこ:

'/var/tmp/errors.log':カスタムログファイル(このパスはLinux用です。OSに応じて他のパスを指定できます)。 print_r($v, TRUE) :は、ログファイルに$ v(配列/文字列/オブジェクト)を記録します。 FILE_APPEND:ファイルが存在する場合はファイルに追加するかどうかを指定する定数パラメーター。ファイルが存在しない場合は新しいファイルが作成されます。

14
Pupil

WAMPサーバー3.0ユーザーのみ:

C:\wamp64\bin\php\php[5.*/7.*]\phpForApache.iniを変更する必要があります

この行のコメントを解除します。

log_errors = On
error_log = "c:/wamp/logs/php_error.log"

ここで言及したのと同じような種類のパスでログをチェックしてください:

c:/wamp/logs/php_error.log
7

通常のファイル操作を使用して、エラーログを作成できます。これを参照して、このリンクを入力してください: PHP File Handling

3
Hraday Joshi