ログローテーション

CakePHP 2.xではbootstrap.php内にあらかじめアプリケーションログの設定が書かれています。2.xで日付ごとにログファイルが切り替わるよう設定してみました。

日ごとにログを切り替える設定

app/Config/bootstrap.phpを以下のように変更もしくは追加して下さい。

// app/Config/bootstrap.php[変更or追加 後]

/**
 * Configures default file logging options
 */
App::uses( 'CakeLog', 'Log');
CakeLog::config( 'debug', array(
    'engine' => 'FileLog',
    'types' => array( 'notice', 'info', 'debug'),
    'file' => date( 'Ymd') . '_' . 'debug',       // 変更
//  'size' => ‘5MB’                               // 5Mごとにファイル切替
//  'rotate' => 20                                // 20ファイルまで切替
));
CakeLog::config( 'error', array(
    'engine' => 'FileLog',
    'types' => array( 'warning', 'error', 'critical', 'alert', 'emergency'),
    'file' => date( 'Ymd') . '_' . 'error',       // 変更
));

これで、日を跨ぐごとにapp/tmp/log下にyyyymmdd_debug.logとyyyymmdd_error.logで作成されるようになります。

オプション

2.4で以下のオプションが追加されました。上の設定では日付ごとにローテーションされますが、さらに同一(同日付)ファイルに対してローテーションが行われます。ファイル名は、'file'に切替が行われた時間のUNIXタイムスタンプが付与されます。

  • size:1つのファイルの上限サイズ 上限に達するとファイルの切替が行われます。(デフォルト10M)
  • rotate:ローテーションの最大数。設定数前のファイルは削除されます。(デフォルト10)

CakePHP 1.3では

1.3ではbootstrap.phpには記述されていないため、以下そのまま追記して下さい。
CakePHP 1.3 - ログローテーション

// app/config/bootstrap.php
<?php
$log_path = LOGS.DS.date('Ymd').'_';
CakeLog::config('default', array('engine' => 'FileLog', 'path' => $log_path));
?>
  • このエントリーをはてなブックマークに追加

関連記事

ユーザ登録(仮登録・メール・本登録)

以前1.3版で投稿した「ユーザ登録」処理の2.x版を作成しました。フローは同じで以下のようにします。 1. メールアドレス・パスワードでユーザ登録 2. この時点では仮登録として、本登録用のU

独自のバリデーションルールを作成

CakePHPで組み込みバリデーションルールをつくる方法は、正規表現を定義する方法と独自メソッドを定義する方法の2つがあるようです。 参考 Custom Validation Rules 正規

CakePHP 2.x インストール

現在まで私が商用・非商用にリリースしているCakePHPアプリケーションは全て1.3.xベースで作成しています。 まだまだロードマップ的には大丈夫そうですが、お客さん向けに納品しているアプリケーショ

FullCalendarを使用してカレンダーアプリケーション

カレンダーアプリケーションを作成するため、カレンダー表示できるプラグインを探索して出会ったFullcalendarを試してみました。シンプルに使用できる上に、オプションがかなり豊富です。ダウンロード

コントローラ内でバリデーション処理を呼び出す

CakePHPでは、saveメソッドの際にバリデーション処理も自動で行われますが、save処理と切り離してバリデーションを行うこともできます。このときは、save時と若干異なる処理体系になります。

テーブルからランダムにデータを取り出す(find)

CakePHPでテーブルから特定件数のレコードをランダムに取得するには以下のように指定するとできます。 $this->data = $this->Bulkdata->find( 'all',

パス定数と変更方法やURLの取得

CakePHPは基本的にはディレクトリそのまま配置することで構築が可能ではありますが、設定パスを変更することでセキュリティに考慮した構成にすることや運用性をもたせたものにすることが可能になります。

recursive設定によるfind()性能改善

CakePHPでは、モデルにアソシエーションを設定している場合、recursive(=>joinする階層)はデフォルトで0に設定されています。「recursiveゼロ」の意味するところとは、「1跨ぎま

ハッシュ関数の選択とハッシュ化処理

CakePHPでは、ログイン時にはpasswordを自動的にハッシュ化して認証を行ってくれますが、そのパスワードを登録する際は、明示的にハッシュ化する必要があります。 ハッシュ関数の選択 ハッ

Markdown Plugin

「Markdown CakePHP Plugin」は、MarkDown書式をレンダリングしてくれるビューヘルパーです。MarkDownについて勉強しているうちに出会ったので試し打ちです。 ダウンロー

Comment

Message

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

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

    PAGE TOP ↑