、
sqliteの接続
$sqlite = new PDO('sqlite:./logs/log.db');
自分LogWritterを作成フレームワークに似
<?php
/**
* Description of LogWritter
*
* @author Ruwantha.Lankathilaka
*/
class LogWritter {
protected $sqliteConnection;
public function __construct($connection) {
$this->sqliteConnection = $connection;
}
/**
* Write function will bypass the slim default LogWriter and will return
* last inserted log id which could be used as a reference
*
* @param type $object will get the error message
* @param type $level will get the error levels of \Slim\Log
* @return mix if successfully logged will return the last insert id, else
* will return false
*/
public function write($object,$level) {
//Determine label
$label = 'DEBUG';
$message = (string) $object;
switch ($level) {
case \Slim\Log::FATAL:
$label = 'FATAL';
break;
case \Slim\Log::ERROR:
$label = 'ERROR';
break;
case \Slim\Log::WARN:
$label = 'WARN';
break;
case \Slim\Log::INFO:
$label = 'INFO';
break;
}
$sqliteQuery = "INSERT INTO logs (lable,message) VALUES (:lable,:message)";
$statement = $this->sqliteConnection->prepare($sqliteQuery);
$result = $statement->execute(array(':lable'=>$label,':message'=>$message));
if(!empty($result)){
return $this->sqliteConnection->lastInsertId();
}else{
return false;
}
}
}
を作成したインデックス
にLogWritterを追加
LogWritterをSlimアプリケーションに追加
$app = new \Slim\Slim(array(
'log.writer' => $logWriter,
'log.enabled' => true,
'log.level' => \Slim\Log::DEBUG,
'debug' => true
));
ログが、これは将来的に誰かを助ける
希望を失敗した場合、今あなたがアプリからログを取得することができます
$retult = $app->log->error('test error');
$結果は、挿入されたログIDがfalseになります。
ロギングがどの程度正確に実装されているかを詳しく説明できますか?それに応じて、コミュニティは解決策を提案することができます。 –