Zend Framework 2中的静态记录器?

时间:2013-10-15 16:09:32

标签: php zend-framework logging zend-framework2

Laravel有一个很好的静态记录器接口我想用(http://four.laravel.com/docs/errors#logging

我想要一个就像那个,但要从Zend Framework 2的范围中使用。更具体地说,我希望所有登录源代码的地方都只是:

Log::alert('string'); 
Log::debug('string');

是否有现有包裹?我可以自己写/扩展吗?我可以从Laravel中提取代码库吗?

3 个答案:

答案 0 :(得分:4)

类别:

class Log
{
    public static function __callStatic($method, $args)
    {
        $logger = new \Zend\Log\Logger();                           
        $writer = new \Zend\Log\Writer\Stream('data/logfile.txt');  
        $logger->addWriter($writer); 

        return $logger->$method($args[0]);
    }
};

致电:

Log::info("my Zendastatic Log Message");

来源:

答案 1 :(得分:2)

您可以使用您自己的类扩展Zend \ Log \ Logger并进行装饰(就像使用相同的方法)。您甚至可以将其添加到Service Manager的服务中并获取它。

$myLogger = new MyNamespace\MyLogger();
$myLogger->info('Informational message');

class MyLogger extends Zend\Log\Logger
{
  public function __construct() 
  {
    $writer = new Zend\Log\Writer\Stream('data/logfile');  //define log file placement
    $this->addWriter($writer);             //add the writer
  }
}

答案 2 :(得分:0)