2017-06-05 5 views
0

Ich versuche einen Logger in PhalconPHP zum Debuggen zu arbeiten.Phalcon Logger/fileAdapter funktioniert nicht

Aber egal, welchen Code ich zu verwenden versuchen, es gibt mir diese Fehlermeldung, wenn Sie den Browser geladen:

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

Zur Info: Alle Logger-Codes werden in einem Phalcon Controller getestet.


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

Antwort

0

Zunächst einmal ich empfehlen die Verwendung von relativen Pfad nicht, sondern absolut.

In Ihrem Fall ist es wie absoluter Pfad scheint, ist: /home/myuser/public_html/demo1/app/logs/test.log

Zweitens prüfen, ob der PHP-Benutzer (häufig in Web-Server ist es www- data) hat die Rechte, in das Protokollverzeichnis zu schreiben (zum Beispiel www-data eigene Verzeichnisprotokolle).

Und letzte Sache, auf die ich manchmal stoße, ist, wenn Sie CLI verwenden, die Log-Datei gehört Shell-Benutzer, dann kann WWW-Daten Benutzer nicht in diese Datei schreiben. Mache entweder unterschiedliche Logs für CLI oder lösche einfach Logs.

Hope it

0

Verwenden APP_PATH

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