PHPのerror_logメソッドでログを出力する方法を現役エンジニアが解説【初心者向け】

初心者向けにPHPのerror_logメソッドでログを出力する方法について現役エンジニアが解説しています。ログ出力とは、プログラムの実行内容を特定のログファイルに書き出すことです。PHPでは、error_logという関数を使って、ログファイルを出力することができます。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

今回は、PHPのerror_logメソッドでログを出力する方法について解説します。

 

なお本記事は、TechAcademyのPHP/Laravel講座の内容をもとに紹介しています。

 

田島悠介

今回は、PHPに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

PHPのerror_logメソッドでログを出力する方法について詳しく説明していくね!

大石ゆかり

お願いします!

 

ログ出力とは

ログ出力とは、プログラムの実行内容を特定のファイル(ログファイル)に書き出すことです。

ログファイルに実行内容を書き出すことで、プログラムが正常に動作しているか、エラーの場合はどのようなエラーなのか、ということなどが判断できます。

これにより、開発を行う際に実装した処理が正常に動作しているか確認できたり、完成したプログラムに不具合が発生した場合にその不具合の原因を特定できたりします。

ログには、様々な種類があります。例えば、WEBサーバでは、接続してきたユーザの情報を記録するアクセスログや、接続や処理にエラーがあった際の情報を記録するエラーログがあります。

error_logメソッドの使い方

PHPでは、error_logという関数を使って、ログファイルを出力することができます。error_log関数は、下記のように記載します。

error_log ( メッセージ, メッセージタイプ, 出力先)

メッセージは、出力する文字列です。メッセージタイプは、0がシステムのデフォルトログ(標準出力など)、1がメール、3がファイルなど決まった値になります。出力先は、メッセージタイプが1の場合はメールの送付先アドレス、3の場合は出力先ファイルパス、などになります。

※その他のオプションについては解説を省略します。

また、実行後の戻り値は、ログの出力に成功すれば true 失敗すれば false が返ります。

[PR] PHPのプログラミングで挫折しない学習方法を動画で公開中

実際に書いてみよう

それでは、実際にログを出力してみます。

<?php
 if (error_log("エラー:ログファイルテスト\n", 3, "./debug.log")) {
 echo "ログを出力しました。";
 } else {
 echo "ログ出力に失敗しました。"; 
 }
?>

こちらの内容では、”エラー:ログファイルテスト\n” という文字列を ./debug.log というファイルに出力しています。実行結果で、ログの出力が成功すれば、画面に下記のように表示されます。

ログを出力しました。

またこの時、実行ファイルと同じディレクトリに、debug.logというファイルが作成されます。ファイルの中身を確認すると下記のような内容になっています。

エラー:ログファイルテスト

複数回実行すると、上記の文言が実行した分追記されていきます。

筆者プロフィール

メンターYさん

フリーランスエンジニアとして、PHPを中心としたWEB開発全般を行う。最近では、WordPressを使ったメディアの構築・運用を多くこなしている。

元々は大手通信会社のエンジニアで、セキュリティに関する仕事をするも、大企業が肌に合わず独立。一箇所に縛られての仕事を苦手とし、自宅とカフェとコワーキングスペースを行ったり来たりしている。

ただ、自宅にいるとどうしてもゲームをしてしまうため、コワーキングスペースの比率が大きい。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

 

オンラインのプログラミングスクールTechAcademyではオンラインブートキャンプPHP/Laravelコースを提供しています。

PHPやフレームワークのLaravelを使ってWebアプリケーションの開発を学ぶことができます。

現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、最短4週間で習得することが可能です。

また、現役エンジニアから学べる無料のプログラミング体験会も実施しているので、ぜひ参加してみてください。