【CakePHP入門】logメソッドの使い方まとめ(ログの出力方法)

こんにちは!フリーエンジニアのヤマシタです。

システムを運用する上で、コンピューターの稼働状況やエラーの内容、各種ステータスなどを確認するのにログはとても重要な情報となります。

この記事では、

・logメソッドとは?
・logメソッドを使用してログを出力する方法

という基本的な内容から、

・ログのレベルを指定する
・出力するログファイル名を指定する
・ログファイルの出力先を指定する

などのlogメソッドの応用的な使い方について解説します。

ここではそんなlogメソッドについて、基本から応用までくわしく解説していきます!

使用環境: cakephp-3-4-7

logメソッドとは

システムを開発をする上で、エラーの内容やデバッグの内容を確認したいときは、ログファイルに内容を保存するのが一般的です。

CakePHPでログファイルに内容を保存するためには、コントローラのlogメソッドを使用します。

logメソッドは第一引数にログの内容を指定し、第二引数にはログのレベルを指定できます。

CakePHP3.x系ではログファイルはデフォルトで「logs/error.log」に出力されます。

logメソッドの基本的な使い方

ここでは、実際にログの出力方法を見ていきましょう。

以下にlogメソッドを使用して、簡単なログを出力するサンプルを紹介します。

サンプルプログラムは 「src/Controller」に作成します。

このプログラムを実行すると「logs/error.log」に日時、ログレベル、ログの内容が出力されます。

変数の内容をログに出力

プログラミングにおいて、開発時や試験のときに変数の内容をログに出力して確認したい場合があります。

logメソッドは文字列だけではなく、変数の内容をログに出力することができます。

logメソッドの引数に変数を指定すれば、変数の内容が出力されていることがわかります。

ログのレベルを指定する

logメソッドは第二引数を指定すると、記録するログのレベルを指定できます。

第二引数を指定しない場合は、デフォルトでエラーログのパスに書き込むerrorが設定されます。

第二引数で指定できるログレベルについては、CakePHPのドキュメントによると、以下のとおりです。

上から順に重要度が高いレベルになります。

ログレベル内容
Emergencyシステムは使用出来ません
Alert今すぐ行動する必要がある
Critical 致命的な状態
Errorエラー状態
Warning警告状態
Notice正常であるが、重大な状態
Infoインフォメーションメッセージ
Debugデバッグレベルメッセージ

以下にログのタイプを指定したサンプルを記述します。

指定したレベルでログが書き込まれていますね!

debugを指定すると、デフォルトでは「logs/debug.log」に書き込まれます。

ロギングの設定

出力するログファイル名を指定する

ログのファイル名を変更したり、新たに出力するファイルを指定する場合は、「config/app.php」の“onfigures logging options”の箇所に必要な情報を記述します。

この例では、originalのログを新たに定義しています。

pathには出力先の定数を記述します。定数はデフォルトでLOGSと設定されています。定数の定義先は「config/paths.php」に記述されています。

fileにはログを出力するファイル名を記述し、levelsには出力するログレベルを指定します。

app.phpの内容を記述したら、original.logに内容が出力されるか確認してみましょう。

以下のようにoriginal.logが作成され、指定したログの内容が書き込まれていたら成功です!

ログファイルの出力先を指定する

ログの出力先を変更するには、「config/path.php」に、パスを定義する必要があります。

デフォルトでは定数LOGSが定義されていて、path.phpを確認すると、以下のように記述されています。

ログの出力先を変更するには、既存の定数LOGSの内容を変更するか、新たにdefineを定義して、定数やパスを指定する必要があります。

ここでは、以下のようにdefineの内容を追加してログの出力先を指定します。

定数LOGS_ORIGINALを新たに作成したので、先述した「config/app.php」の”onfigures logging options”のpathにLOGS_ORIGINALを指定します。

設定したら、「ログの出力先を変更」で使用したサンプルプログラムを実行してみましょう。

プログラムを実行すると、指定したoriginal_logs以下にログファイルが作成され、ログの内容が出力されていればOKです!

まとめ

ここでは、CakePHPでのログの出力方法やログレベルの指定方法、ロギングの設定によるログファイルの作成やファイルの出力先を設定する方法などについて、解説しました。

ログファイルにエラーの内容や変数の内容を出力することはよくありますので、logメソッドの使い方についてはよく理解しておきましょう。

もしlogメソッドの使い方を忘れてしまったら、この記事を思い出してくださいね!

未来に繋がるプログラミング学習、できていますか?

エンジニアと一口にいっても、フロントエンド、サーバーサイド、アプリ開発、AI関連など様々な業界や職種があり、業務内容や働き方、年収は変わります。

どんな働き方をしたいのか、どのくらい年収が欲しいのかなど具体的なキャリアパスを考えて、それを達成できる学習カリキュラムを考えていかないと、希望する方向性とは違うエンジニアになってしまったり、遠回りの学習に時間を費やしてしまう可能性があります。

侍エンジニア塾では目的から逆算する形で、まずあなたの目指すキャリアをヒアリングさせて頂いてからそれを達成するためのオリジナルの学習カリキュラムを作成しています。

今学んでいることが理想のエンジニアになるために繋がっているか不安でしたら、下記の無料体験レッスン予約カレンダーよりお気軽にご相談ください。

LINEで送る
Pocket

書いた人

ヤマシタ

フリーランスエンジニア。ITに関わるさまざまなコンテンツの企画・制作も行っています。
ITに関してはノウハウ系、ライフハック系、トレンド系など、今まで200本以上の執筆経験があります

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説