ログローテーション

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

関連記事

no image

HttpSocketを使用してリクエスト送信

CakePHPには、Webサービスへのリクエスト送信のためのHttpSocketクラスが用意されています。 HttpSocket get HTTP GETリクエストを発行します。デモ H

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

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

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

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

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

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

CakeEmailでメール送信(@gmail)

CakePHP 2になって追加されたクラスCakeEmailがシンプルに使えます。これを使用してメール送信を行う処理を実装してみました。 CakeEmailクラスの読み込み /app/Config

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

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

hasOne アソシエーション

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

CakePHP インストール時エラーの対処

CakePHPインストール時に出くわすであろうエラーの原因と対処方法についてまとめてみました。前提として、WebサーバはApache、データベースはMySQLとしています。 Timezone未設

Jsヘルパーを使用してAjax更新

更新処理でページ遷移を伴う場合、ページ全体をレスポンスするのに対して、Ajax処理ではページの一部のレスポンスが可能となるためサーバからの通信量を抑えることが可能となります。デモ head

複数ファイルアップロードフォーム

CakePHP 2.0からはHTML5が標準でサポートとなり、複数ファイルアップロードのためのフォーム記述が容易になりました。 View (ビュー) 配列 Array (

Comment

Message

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

*

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

    PAGE TOP ↑