2017-06-05 63 views
0

我正在尝试使用PhalconPHP来进行调试。Phalcon记录器/文件适配器不能正常工作

但不管我用什么代码,它加载浏览器的时候给了我这个错误:

Can't open log file at 'app/logs/test.log' 
#0 /home/myuser/public_html/demo1/app/controllers/UsersController.php(6): Phalcon\Logger\Adapter\File->__construct('app/logs/test.l...') 
#1 [internal function]: unknown() 
#2 [internal function]: Phalcon\Loader->autoLoad('UsersController') 
#3 [internal function]: spl_autoload_call('UsersController') 
#4 [internal function]: Phalcon\Dispatcher->_dispatch() 
#5 [internal function]: Phalcon\Dispatcher->dispatch() 
#6 /home/myuser/public_html/demo1/public/index.php(42): Phalcon\Mvc\Application->handle() 
#7 {main} 

<?php 

use Phalcon\Logger\Adapter\File as FileAdapter; 

// Create the file logger in 'w' mode 
$logger = new FileAdapter("app/logs/test.log", array(
    'mode' => 'w' 
)); 

供参考:所有的记录代码在一个尔康控制器测试。


$logger = new \Phalcon\Logger\Adapter\File("app/logs/test.log"); 

$logger->log("This is a message"); 
$logger->log(\Phalcon\Logger::ERROR, "This is an error"); 
$logger->error("This is another error"); 

$logger->close(); 

use Phalcon\Logger; 
use Phalcon\Logger\Adapter\File as FileAdapter; 

$logger = new FileAdapter("app/logs/test.log"); 

$logger->log(
    "This is a message" 
); 

回答

0

首先,我建议不要使用相对路径,但绝对的。

在你的情况下,它似乎是绝对路径是: /home/myuser/public_html/demo1/app/logs/test.log

其次检查PHP的用户(通常在网络服务器,它是WWW-数据)有权写入日志目录(例如,使万维网数据自己的目录日志)。

我遇到的最后一件事情是,当你使用cli时,日志文件由shell用户拥有,然后www-data用户不能写入该文件。为cli制作不同的日志或者只删除日志。

希望它可以帮助

0

使用APP_PATH

$logger = new FileAdapter(APP_PATH.'app/logs/test.log', ['mode' => 'w']);