Yii2.0的日志功能虽然说已经很强大,但有时候,我们需要在程序运行的关键地方加入日志。这样使用Yii2.0系统提供日志功能,就有一些不太习惯。(ps:也许是我的Yii2.0使用的不熟悉)

这里我在extensions下建了一个utils目录并建了一个名为FileLog的php文件继承yii\log\FileTarget类。不多了,直接上代码,大家一看就明白了。

<?phpnamespaceapp\extensions\utils;useYii;useyii\helpers\FileHelper;useyii\log\FileTarget;classFileLogextendsFileTarget{publicfunctioninit(){parent::init();$this->logFile=Yii::$app->getRuntimePath().'/logs/pay/'.date('Y-m-d').'.log';$logPath=dirname($this->logFile);if(!is_dir($logPath)){FileHelper::createDirectory($logPath,$this->dirMode,true);}if($this->maxLogFiles<1){$this->maxLogFiles=1;}if($this->maxFileSize<1){$this->maxFileSize=1;}}}

这样就o了。

当然使用也很简单。看代码

<?phpnamespaceapp\controllers;useYii;useyii\log\Logger;useyii\web\Controller;useapp\extensions\utils\FileLog;classPayControllerextendsController{publicfunctionactionIndex(){$log=newFileLog();$log->messages[]=['fff',Logger::LEVEL_INFO,'',time()];$log->export();}}/***textstring日志内容*levelint信息等级,这个你可以自己定义。我就是用的yii的*categoriesstring信息分类,这个根据yii的文档,是可以对错误进行分类,*比如数据库,是连时候的错误,还是运行时候的错误*timestampint这个就是时间戳了*message[$text,$level,$categories,$timestamp]*/