2013-04-30 116 views
0

我是一個zend框架的新用戶 - 2,我試圖使用Logger功能爲我的網站任何人都可以幫助我有這個問題。Zend framework2致命錯誤:Class'Application Controller Zend Log Writer Stream'找不到

請幫我把log和IP和TIMESTAMP一起解決。

我已經添加了這些代碼,我IndexController.php

use Zend\Log\Logger; 
use Zend\Log\Writer\AbstractWriter; 
use Zend\Log\Filter\FilterInterface; 
use Zend\Log\Formatter\FormatterInterface; 
use Zend\Log\Writer\Stream; 

然後在我的indexAction我使用

$writer = new Zend\Log\Writer\Stream('php://output'); 
    $formatter = new Zend\Log\Formatter\Simple('%timestamp% %message%' . PHP_EOL); 
    $writer->setFormatter($formatter); 
    $logger = new Zend\Log\Logger(); 
    $logger->addWriter($writer); 
    $logger->info('Informational message'); 

但我收到此錯誤

Fatal error: Class 'Application\Controller\Zend\Log\Writer\Stream' not found 

如果可能幫助我編寫一個分離模塊將所有數據庫條目導出爲ex​​cel。 謝謝

回答

1

只是嘗試

$writer = new \Zend\Log\Writer\Stream('php://output'); 

$writer = new Stream('php://output'); 
3

你應該知道PHP:namespace

一旦你包括通過use語句來類,你只需要調用ClassName(CN)而不是完全合格的ClassName(FQCN)

有了這樣說:

$writer = new Stream(); 
$formatter = new Simple(); 
$logger = new Logger(); 

另一種方法是不包括通過use語句來的類和簡單地調用FQCNs

領先 \反斜槓
$writer = new \Zend\Log\Writer\Stream(); 
$formatter = new \Zend\Log\Formatter\Simple(); 
$logger = new \Zend\Log\Logger(); 

採取通知。

+0

我也試過這個,因爲在ZF2中簡單的登錄並不簡單。我使用$ writer = new \ Zend \ Log \ Writer \ Stream('/ tmp/test.log')和$ logger = new \ Zend \ Log \ Logger($ writer)。但是,我得到這個錯誤「選項必須是一個數組或實現\ Traversable的對象」。咦? ZF2 2.2.5。 – AaplMike 2014-01-15 19:41:28

相關問題