エラーログを参照するタイミング
普段はViewに変数の中身を出力していたが、Viewを使わない関数(アクション)を実行するとViewがないため変数の中身をブラウザに出力して確認出来ない。
変数の中身をリアルタイムで監視したい。
そんな時はエラーログを上手く使うと問題点の発見がスムーズにいきます。
cakePHPでerror.logの場所
htdocs/アプリ名/app/tmp/logs/error.log
error.logを開いてみる
①ターミナルを起動します。
普段からターミナルを使用していない人には少し抵抗があるかもしれませんが、
慣れると便利です。
②ターミナルでerror.logの場所までいこう
僕の環境はMACでMAMPを使ってPHPを動かしているのでerror.logまでのパスは
Application/MAMPhtdocs/アプリ名/app/tmp/logs/です。
このlogsフォルダの中に入っているerror.logを実行します。
③ターミナルでerror.logを開く
今回、error.logを開くには「tail -f」というコマンドを使います。
tailコマンドについてはこちらを御覧ください。
http://www.webhtm.net/unix/cmd/tail_cmd.htm
tail -f error.log
tailコマンド終了するにはcontrol+Cを押します。
cakePHP側の設定をする
設定をすると言ってもlog()関数にログファイルに吐き出したい変数を引数としていれて実行をするだけ。
$this->log(変数名);
例えば、
class TestsController extends AppController {
//省略
function test(){
$this->autoRender = false;
$info = $this->Food->find('all');
$this->log($info);
}
}
エラーログを吐き出してみる
TestsControllerのtestアクションを実行するとfoodsテーブルから登録されている情報が全て取得されます。
そしてそれが$infoに格納されるのですが、その時に格納された情報がターミナルにリアルタイムに表示されます。
ターミナルの画面にfoodsテーブルの情報が追加されました。
ターミナルの操作なんかは使っているうちにどんどん慣れてくると思いますので、まずは一度使ってみてください。
そのうちターミナル無しじゃ開発できなくなってしまう日が来ることでしょう笑