前回のフラットなPHPで書かれたサイトにSlimフレームワークを導入してみたに引き続きSlimフレームワークの忘備録。
今回はログ出力。
ログ出力
まずログの出力先のディレクトリをpublicディレクトリと同じ階層下に作成。
composer.json
composer.lock
logs/ ←これ
public/
以下略
ログのファイル名と出力先を指定します。
$today = new DateTime('now', new DateTimeZone("Asia/Tokyo"));
$logWriter = new Slim\logWriter(
fopen('../logs/' . $today->format('Y-m-d'), 'a'));
$config = array(
'log.level' => \Slim\Log::DEBUG,
'log.writer' => $logWriter
);
$app = new \Slim\Slim($config);
とりあいずログレベルはDEBUGから出力。
適宜出力レベルは指定してください。
参照:..\vendor\slim\slim\Slim\log.php
const EMERGENCY = 1;
const ALERT = 2;
const CRITICAL = 3;
const FATAL = 3; //DEPRECATED replace with CRITICAL
const ERROR = 4;
const WARN = 5;
const NOTICE = 6;
const INFO = 7;
const DEBUG = 8;
ログを書き込んでみます。
$app->getLog()->info('info');
$app->getLog()->debug('debug');
../logs/2015-06-12の中身。
info
debug
ログの出力は終了。
上手くログファイルが作れていなかったりエラーが出たら../logsのパーミッションを見なおしてみるといいかも。
chmod 755 ../logs
ちなみにSlimインスタンスを作るときにconfigの設定を渡したけど
あとから設定しても可。
$app = new \Slim\Slim($config);
$app->config('log.level', Slim\Log::DEBUG);
$app->config('log.writer', $logWriter);