[CakePHP] ログをファイルに書き出す

デバッグ用や運用エラーの記録用にログをファイルに書き出したい場合がある。CalePHPには手軽に使えるロギングの仕組みが用意されている。

Logging — CakePHP Cookbook 2.x documentation
http://book.cakephp.org/2.0/en/core-libraries/logging.html

Class CakeLog | CakePHP
http://api.cakephp.org/2.7/class-CakeLog.html

CakePHPのクラスではlog()関数を呼ぶことでログをファイルに書き出すことができる。log()関数は2つの引数を取り、1つ目の引数がログメッセージ、2つ目の引数はログ種別(error, warning, info, debugなど)である。ログ種別がログ出力先のファイル名を決定する。ログ種別を指定しないとLOG_ERRORが使われる。

あるいはCakeLog::write()関数を呼ぶことにより、任意のクラスからログを書き出すことができる。write()関数の1つ目の引数にはログ種別、2つ目の引数にはログメッセージを指定する。

config()関数を使ってログの動作オプションを指定することもできる。以下はログファイルのパスを指定した例。注意事項としては、config()関数は必ずapp/Config/bootstrap.phpで呼び出すこと。core.phpで呼び出すと、パスが未設定のために不具合の原因となる。

参考サイト

【CakePHP】独自ログ – Qiita
http://qiita.com/kazu56/items/1930bfb8960d52d71a50

CakePHPでログの振り分け(1つのconfigで複数ファイルに) – Qiita
http://qiita.com/HamaTech/items/4c92b36c8c9803c4eec9

CakePHP 2.x – ログローテーション
http://kwski.net/cakephp-2-x/1048/