CakePHPクッキング

ログを出力する方法

開発環境:CakePHP2.5.1

開発していく上で調査をするためや記録としてログを保存したい時はlogメソッドを使います。

logメソッドの基本

コントローラーのログを書き込みたい場所に下記のように書きます。

<?php $this->log('ログ書き込み'); ?>

すると、app/tmp/logs/error.logに内容が追記されます。

デフォルト状態でerror.logに書き込まれる仕組み

先ほどのデフォルト状態ではerror.logに書き込まれましたが、その仕組みについてです。
まずlogメソッドはlib/Cake/Core/Object.phpに書かれています。
そこで第二引数のデフォルト値がLOG_ERRとなっています。

LOG_ERRの定数はlib/Cake/Log/CakeLog.phpに定義されています。

<?php
protected static $_defaultLevels = array(
    'emergency' => LOG_EMERG,
    'alert' => LOG_ALERT,
    'critical' => LOG_CRIT,
    'error' => LOG_ERR,
    'warning' => LOG_WARNING,
    'notice' => LOG_NOTICE,
    'info' => LOG_INFO,
    'debug' => LOG_DEBUG,
);
?>

そして、app/Config/bootstrap.phpに次のように書かれています。

<?php
CakeLog::config('error', array(
  'engine' => 'File',
  'types' => array('warning', 'error', 'critical', 'alert', 'emergency'),
  'file' => 'error',
));
?>

この設定により、error.logに書き込まれます。

独自のファイルにログを出力する

original_log.logというファイルに出力したい場合、app/Config/bootstrap.phpに次のように設定します。

<?php
CakeLog::config('original_log', array(
  'engine' => 'File',
  'types' => array('original_log'),
  'file' => 'original_log',
));
?>

そして、コントローラー側でoriginal_logに書き込むよう指定します。

<?php $this->log('ログ書き込み', 'original_log'); ?>
WordPressとCakePHPの共存

サイトを作るのに便利なWordPress。プラグインも数多く用意されて

サイトマップの作成方法

Googleのウェブマスターツールに渡すためのサイトマップの作成方法で

INSERTしたIDを取得する

データを保存した後にINSERTされたデータのIDを使って何かの処理を

ファイルの存在確認やフォルダー内のファイル一覧取得

特定のファイルの存在を確認したい場合や特定のフォルダー内にあるファイル

リンクの最後に常にスラッシュをつける方法

URLの最後に常にスラッシュをつけるかつけないかを統一する方法は、UR

countやsumを使う時のフィールド名を指定する

CakePHPでcountやsumなどを使う場合、ちょっとした工夫が必

Formの便利な使い方

問い合わせフォームや会員機能など、WEBサイトを作る際に必ず必要になる

ヘルパーをオーバーライドする

CakePHPで便利な機能が詰まったヘルパーですが、時々もう少しこうだ

特定の時だけSQLの条件を追加するならSet::mergeを使う

SQLの条件を追加したい時に使うのがarray_mergeなどですが、

ページネーションではDISTINCTではなく、GROUP BYを使う

重複したデータを省く時に使うDISTINCTですが、ページ送りで使う時

Model内で別のModelを呼び出す

モデル内で別のモデルを使いたいケースがあった場合、次のようにすることで

CakePHPでGoogleAnalyticsAPIを使う

CakePHPでGoogleAnalyticsを使う方法について見てい

独自のfindを定義するfindMethods

findをより便利に、よりスッキリ書くのに、findMethodsを使

TCPDFを使ってCakePHPでPDFを作成

CakePHPでPDFを作成するには幾つかの方法がありますが、今回はT

JavaScriptをコードの最下部に配置

SEOの観点からJavaScriptのコードは一番下に記述したいところ

無限スクロールをさせる

TwitterやFacebookのタイムラインを見ていて、ページの下に

PHPExcelの導入

ExcelにDBのデータを表示して一覧を作ったり、請求書などのフォーマ

Warning: SplFileInfo::openFile〜の警告が表示されたら

ShellとWEBの両方で同一のModelを呼び出す時に「Warnin

連結されていないデータを抽出

通常、テーブルを連結してデータを取得するには、アソシエーションを利用し

データを取得する

データを取得したい時に少し変わった条件で取得したい場合があります。

PAGE TOP ↑