※「≈≈≈」は省略を表す
バージョン
$ cat lib/Cake/VERSION.txt
≈≈≈
2.4.5
CustomFileLog.phpの作成
$ cp -p lib/Cake/Log/Engine/FileLog.php app/Lib/Log/Engine/CustomFileLog.php
$ vi app/Lib/Log/Engine/CustomFileLog.php
-
既存のApp::usesを削除して、以下を追加
App::uses('FileLog', 'Log/Engine');
-
「
class FileLog extends BaseLog {
」を削除して、以下を追加class CustomFileLog extends FileLog {
「
public function write($type, $message)
」以外の関数は全て削除-
「
public function write($type, $message)
」内の「$output = date('Y-m-d H:i:s') . ' ' . ucfirst($type) . ': ' . $message . "\n";
」を削除して、好きなフォーマットに変更
例) シンプルにメッセージだけを出力したい場合$output = $message . "\n";
-
bootstrap.phpを編集
$ cat app/Config/bootstrap.php ≈≈≈ /** * Configures default file logging options */ App::uses('CakeLog', 'Log'); App::uses('CustomFileLog', 'Log/Engine'); // 追加 CakeLog::config('debug', array( 'engine' => 'File', 'types' => array('notice', 'info', 'debug'), 'file' => 'debug', )); CakeLog::config('error', array( 'engine' => 'File', 'types' => array('warning', 'error', 'critical', 'alert', 'emergency'), 'file' => 'error', )); // 今回は、custom.logだけ、出力形式がカスタマイズしたいので、以下を追加 CakeLog::config('custom', array( 'engine' => 'CustomFile', // ここでCustomFileLogクラスを見るように指定している 'types' => array('custom'), 'file' => 'custom' ));
config('const');
```