Phalcon logger / fileAdapter不工作

时间:2017-06-05 08:13:34

标签: php logging phalcon

我正在尝试使用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"
);

2 个答案:

答案 0 :(得分:0)

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

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

其次检查php用户(通常在web服务器中是www-data)是否有权写入logs目录(例如make www-data own dir logs)。

我遇到的最后一件事是,当你使用cli时,日志文件归shell用户所有,那么www-data用户无法写入该文件。为cli制作不同的日志或只删除日志。

希望有所帮助

答案 1 :(得分:0)

使用APP_PATH

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