2017-06-05 121 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']);