LoginSignup
4
6

More than 3 years have passed since last update.

error_log関数と指定したファイルにエラーログを表示する方法!

Last updated at Posted at 2019-04-26

この記事で分かること

  • エラーログとは何か
  • error_log関数について
  • 指定したファイルにエラーログを出力する方法

※ご紹介する記事内容はMAMPでの開発環境になります

開発環境

  • PHP7.3.1
  • MAMP
  • Mac

エラーログとは

  • エラーが発生した時にエラーの内容がエラーログとして記録すること

エラーログの役割

  • 期待した通りに動作が動かないときに、エラーのログを見ることで、問題の状況や原因を推測することができる

error_log関数の書き方

index.php
bool error_log (string $message[, int $message_type = 0[, string $destination
     [, string $extra_headers ]]] )

パラメーター(引数)

第一引数:$message - 記録するエラーメッセージを指定します
第二引数:$message_type - メッセージのタイプを指定します
第三引数:$destination - メッセージの送信先を指定します
第四引数:$extra_headers - 追加のヘッダ(メッセージタイプが1の場合のみ)を指定します

メッセージタイプの種類(第二引数)

メッセージタイプ 詳細
0 php.iniファイルの「error_log =」で指定したファイルに出力する。
1 第3引数で指定したメールアドレスにメールが送信されます。
2 ※このオプションは使用不可
3 第3引数で指定したファイル名にエラーメッセージが追加されます。また、エラーメッセージの最後に改行が追加されません。
4 エラーメッセージをSAPIログ出力ハンドラに送信します。

error_log関数のコード例

index.php
 error_log("[".date('Y-m-d H:i:s')."]"."入力エラー", 0);

出力結果

php_error.log
[2019-04-26 06:41:05]入力エラー

解説

  • メッセージタイプが「0」の場合php.iniで指定したファイルに出力されます。
php.ini
error_log = /Applications/MAMP/logs/php_error.log

【補足】php.iniファイルの場所を確認する方法

  • MAMPでphp.iniファイルの場所を確認する方法について書きます。

1.MAMPを開いて、「Open WebStart page」をクリックする

MAMP01.png

2.「TOOLS」、「PHPINFO」をクリックする

MAMP02.png

3.phpinfoが表示され、php.iniファイルの場所が確認できます

MAMP03.png

指定したファイルにエラーログを出力する方法

/Applications/MAMP/htdocs/src/log/log.txtファイルにエラーログを出力する場合を想定します。

コード例

index.php
error_log("[".date('Y-m-d H:i:s')."]"."入力エラー" . "\n", 3, "/Applications/MAMP/htdocs/src/log/log.txt");

出力結果

log.txt
[2019-04-26 06:41:05]入力エラー

解説

  • メッセージタイプが「3」の場合、第3引数で指定したファイル名にエラーメッセージが追加されます。

  • 改行がされないので、改行コードを指定する必要があります。

4
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
6