エス技研

WordPress、CakePHP、PHP、baserCMSなどの Web系システムを中心に情報を提供します!


CakePHP3ログファイルの出力方法・$this->log()の解説

      2017/10/28

$this->log()を使ってログファイルを出力する

 

コントロールやモデル内の変数はログファイルに出力しよう

 
CakePHP3で開発を行う際、変数の中身を確認したい、と思う場面は多々あるでしょう。
 
ビューのテンプレート上で扱っている変数であれば、そのまま「echo()」関数や「print_r()」関数を使うことで簡単に確認することができます。
 
ですが、コントローラーや、モデルの中にある変数などは「echo()」関数などで気軽に確認することができません。
 
そんなときに活用するのがログファイルへの出力です。
 
 

$this->log()を使ってログ出力する方法

 

エラーログとして出力する

 
CakePHP3では、ログファイルへの出力は、下記の様に記述をします。
記述するファイルはコントロールファイルや、モデルの Entityや Tableのファイルに記述をします。
 
下記の様に記述すると、エラーログに「エラーログを出力します。」のメッセージが出力されます。
 

 
出力されるログファイルは、デフォルトの設定では下記のファイルになります。
 /logs/error.log
 
 

デバッグログとして出力する

 
デバッグログに出力する場合は、下記の様に第 2引数に「”debug”」「LOG_DEBUG」のいずれかを指定します。
 

 
$this->log() のログ出力が便利な理由は、変数であっても配列(連想配列も含む)であっても、オブジェクトであっても、プログラマー側が特に気にすることなく何でも出力してくれることです。
 
先の例では、固定のテキストを出力するように記述していますが、下記の様に、変数を指定することもできます。
requestデータですので、POSTで値を送信したときは、配列として値を受け取りますが、それも「print_r()」関数で表示したときのような形で配列を展開してログに出力してくれます。
 

 
出力されるログファイルは、デフォルトの設定では下記のファイルになります。
 /logs/debug.log
 
 


 

ログ出力に関する設定

 
ログ出力に関する設定は、以下のファイルに記述してあります。
 /config/app.php
 
記述してある内容の標準形式は以下のようになっています。
 

 
その中から、例えば、「info」のエラーレベルだけを違うログファイルに出力しようと考える場合には、下記の様に、「debug」の「lavels」の中から「info」を取り出し、「info_log」というログファイル出力の設定をするといいでしょう。
 

 
「info」レベルの出力が発生した場合は、infoログに出力されるようになります。
 
また、「info」レベルのログを出力する場合は、下記の様に $this->log()の第 2引数に「info」を指定することで対応が可能になります。
 

 
この場合、出力されるログファイルは、下記のファイルになります。
 /logs/info_log.log
 
 

ログ出力に関するまとめ

 
プログラムを開発するにあたって、変数の中にどういう値が入っているか、それはデバッグをする上で非常に重要なポイントです。
 
なので、簡単に変数の中身を見る方法を確保することは、プログラム開発スピードを向上させてくれるでしょう。
 
CakePHP2では「CakePHP 2.3 Model、Controllerの見たい変数の中身をログ出力」に記事に書いたとおりの方法なのですが、CakePHP3になっても大きな変化はなく「$this->log()」を使うことでログファイルに変数の情報を出力できますので、積極的に活用していきましょう。
 
 
ちなみに、マニュアルは下記のページにあります。
ログ出力の詳細については英語のページしか見つからず、細かなところまではまだ確認しきれていませんが、そのうち日本語のページができてくることを願っています!
https://book.cakephp.org/3.0/en/core-libraries/logging.html#writing-to-logs
 
https://book.cakephp.org/3.0/ja/development/debugging.html
 
 

CakePHP3の関連記事

CakePHP3でユーザ定義の定数、変数を設定し、読み込む方法解説
CakePHP3のバージョンを指定してインストールする詳細な手順を解説
CakePHP3のタイムゾーンを協定世界時UTCから日本標準時間JSTにずれを変更する方法
CakePHP3チュートリアルで日付と時刻のDateTimeでエラーが出たときの対処方法
CakePHP3のCakeDC/Usersのバリデーションのカスタマイズ方法解説
CakePHP3のCakeDC/UsersのUserHelperでログアウトやreCAPTCHAをカスタマイズ
CakePHP3のCakeDC/Usersのログイン後のリダイレクトを設定解説
CakePHP3のCakeDC/Usersの画面、メール本文テンプレートのカスタマイズ方法解説
CakePHP3のユーザ管理・認証プラグイン CakeDC/Usersの導入・機能解説・3.1.5対応
CakePHP3ログファイルの出力方法・$this->log()の解説
 
その他の「CakePHP3」に関する記事一覧
 
 

 - CakePHP 2.x 3.x

GoogleAdwords

GoogleAdwords

最後までお読みいただきましてありがとうございます。
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

下記の空欄を埋めてください。 * Time limit is exhausted. Please reload CAPTCHA.

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

※入力いただいたコメントは管理者の承認後に掲載されます。

  関連記事

CakePHP 2.3 Search Pluginで検索処理 その4前方一致検索、後方一致検索、不等号による検索、between句による範囲検索

CakePHPの検索プラグイン Search Pluginの検索処理の中で前方一致検索、後方一致検索、不等号による検索、between句による範囲検索の解説です。

CakePHP3のタイムゾーンを協定世界時UTCから日本標準時間JSTにずれを変更する方法
CakePHP3のタイムゾーンを協定世界時UTCから日本標準時間JSTにずれを変更する方法

CakePHP3の標準設定のタイムゾーンは「UTC(協定世界時)」に設定されている。これを日本標準時に変更する方法(app.php、bootstrap.phpの変更方法)の解説。

CakePHP 2.3 連携先のテーブルの項目で条件抽出する場合

アソシエーション(連携)している先のテーブルの項目で条件抽出する際の考え方と注意点をサンプルソースを用いて説明しています。

CakePHP 2.3で確認画面付きのお問い合わせフォームの作り方

CakePHPで確認画面付きのお問い合わせフォーム、メールフォームの作り方をサンプルを提示しながら解説。

CakePHP 2.3 Search Pluginで検索処理 その3入力エリア一つで複数の項目を同時に検索する方法

CakePHPの検索プラグイン Search Pluginの検索処理の中で入力エリア一つで複数の項目を同時に検索する方法を解説。

CakePHP3チュートリアルで日付と時刻のDateTimeでエラーが出たときの対処方法
CakePHP3チュートリアルで日付と時刻のDateTimeでエラーが出たときの対処方法

CakePHP3のブックマークチュートリアルには記載ミスもあり、そのまま動かない個所もある。CakePHP3では namespaceを使うようになったので、classを呼び出すときに¥を追加する必要が!

CakePHP 2.3 Search Pluginで検索処理 その2表示件数を動的に変える方法

CakePHPの検索プラグイン Search Pluginの検索処理の中で動的に表示件数を変える方法です。

CakePHP3のcontroller内でテンプレート、レイアウトを変更する際の指定方法

CakePHP3でテンプレートファイルやレイアウトファイルをデフォルトのものから別のものに変更したい場合の指定方法を解説。

CakePHP 2.3でファイルをアップロード・その2 ファイル名を乱数で設定

CakePHPのアップロードするファイル名を乱数で変更しセキュリティを高める方法を解説。

CakePHP3のCakeDC/Usersのバリデーションのカスタマイズ方法解説
CakePHP3のCakeDC/Usersのバリデーションのカスタマイズ方法解説

CakeDC謹製Usersプラグインの紹介。Usersのカスタマイズとして入力項目のバリデーションの変更を、プラグインのファイルは触らずオーバーライドにより実装する方法を解説する。