ログローテーション

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));
?>
  • このエントリーをはてなブックマークに追加

関連記事

Cookieログイン

今回は、ログイン画面でよくみかけるクッキーログインの機能を使ってみます。 CakePHPには、Cookieコンポーネントがあります。(PHPのsetcookieメソッドのラッパー)メソッドはwr

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

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

hasOne アソシエーション

hasOneアソシエーションはテーブル間で1つのレコードに対して他のテーブルに紐付くレコードが1つの場合にjoinする場合に使用します。 CakePHPのドキュメントにならってUserモデルとP

Syslogログエンジン

2.4から「Syslog」ログクラスが追加され、簡単にSyslogを使用できるようになりました。 CakePHP側の設定はbootstrap.php内のCakeLogコンフィグのengineを'Sy

Blowfishを使用してハッシュ化する

使用方法 Blowfishを採用してハッシュ化を行う場合、Securityクラスのhashメソッドを呼び出します。第2引数に'blowfish'を指定し、第3引数を指定しないもしくはfalseにしま

Js/Cssファイルの読み込みや出力する方法

CakePHPのHTMLヘルパーにはjsファイルやcssファイルを読み込むためのメソッドが用意されています。ファイルを読み込むのに加えて、出力先を複数指定できるようになっています。 また、インライン

バリデーションエラーメッセージの取得

CakePHP 2.xになってバリデーションエラー時に返却されるメッセージのデータ形式が変更になったようです。1.3系では、ひとつのフィールドに対して返却されるメッセージは一つのルールのみですが、2.

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

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

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

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

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

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

Comment

@Wafuwafu へ返信する コメントをキャンセル

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

*

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

    PAGE TOP ↑