新增加一个记录日志类,将原文例子中未提到以及自己在这过程中遇到的问题记录下。
1.首先上原文例子:
$logger = new \Phalcon\Logger\Adapter\File("app/logs/test.log"); $logger->log("This is a message"); $logger->log("This is an error", \Phalcon\Logger::ERROR); $logger->error("This is another error"); $logger->close();
输出:
[Tue, 17 Apr 12 22:09:02 -0500][DEBUG] This is a message [Tue, 17 Apr 12 22:09:02 -0500][ERROR] This is an error [Tue, 17 Apr 12 22:09:02 -0500][ERROR] This is another error
2.然后参考例子,我在app/controller/下增加了一个logcontroller类:
<?php
use Phalcon\Logger\Adapter\File as FileAdapter;
use Phalcon\Logger\Formatter\Line as LineFormatter; //首先引用
class LogTest
{
private static $_formatter;
private static $_logName;
public static function LogWrite($logName, $logValue)
{
if(self::$_logName == null){
echo "logName:".$logName;
//$_logName = new FileAdapter("/var/www/html/tutorial/app/logs/".$logName); //这么使用有些问题
$_logName = new FileAdapter("logs/".$logName); //此处会在public/logs/ 文件夹下创建一个 logName的日志文件
echo "log file ok";
}
if(self::$_formatter == null){
echo "=====";
// $formatter = new LineFormatter("%date% - %message%");
// $_logName->setFormatter($_formatter);
}
echo " \nlogValue:".$logValue;
$_logName->begin(); //日志开始
$_logName->log($logValue); //开始记录日志
$_logName->commit(); //日志保存
$_logName->close(); //日志关闭
}
}
// example: 在 public的 index.php中这样使用
//require "app/controllers/LogController.php";
//$some = new LogTest();
//$some->LogWrite("cy.log","hello, world");
?>
3.看结果:
logger beginlogName:cy.loglog file ok===== logValue:hello, worldlogger end
Hello!
Sign Up Here!
4.分析
root@cy-VirtualBox:/var/www/html/tutorial# ls
app public README.md schemas
root@cy-VirtualBox:/var/www/html/tutorial# cd public/
root@cy-VirtualBox:/var/www/html/tutorial/public# ls
index.php logs \var\www\html\tutorial\app\logs\cy.log
root@cy-VirtualBox:/var/www/html/tutorial/public# cd logs/
root@cy-VirtualBox:/var/www/html/tutorial/public/logs# ls
cy.log
root@cy-VirtualBox:/var/www/html/tutorial/public/logs# cat cy.log
[Thu, 02 Jul 15 21:48:17 +0800][DEBUG] hello, world
[Thu, 02 Jul 15 21:48:28 +0800][DEBUG] hello, world
[Thu, 02 Jul 15 21:48:29 +0800][DEBUG] hello, world
[Thu, 02 Jul 15 21:48:29 +0800][DEBUG] hello, world
[Thu, 02 Jul 15 21:48:30 +0800][DEBUG] hello, world
root@cy-VirtualBox:/var/www/html/tutorial/public/logs#
5.首先在apache配置文件 apache2.conf 中 AllowOverride All ,读写权限打开
然后给logs文件夹读写权限 777, 不然会报无法创建文件错误!\var\www\html\tutorial\app\logs\cy.log 这就是例子,系统把它当成一整个日志文件了 ,.log前面所有的都是文件名.
参考:http://www.fastvv.com/docs/phalcon_cn/reference/logging.html