簡體   English   中英

Phalcon記錄器/ fileAdapter不起作用

[英]Phalcon logger / fileAdapter not working

我試圖使記錄器在PhalconPHP中工作,以進行調試。

但是無論我嘗試使用什么代碼,加載瀏覽器時都會出現此錯誤:

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'
));

僅供參考:所有記錄器代碼均在Phalcon控制器中進行了測試。


$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"
);

首先,我建議不要使用相對路徑,而應使用絕對路徑。

在您的情況下,似乎絕對路徑為:/home/myuser/public_html/demo1/app/logs/test.log

其次,檢查php用戶(通常在Web服務器中是www-data)是否具有寫入日志目錄的權限(例如,使www-data擁有自己的目錄日志)。

我有時遇到的最后一件事是,當您使用cli時,該日志文件歸Shell用戶所有,那么www-data用戶無法寫入該文件。 為cli創建不同的日志或僅刪除日志。

希望能幫助到你

使用APP_PATH

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM