码迷,mamicode.com
首页 > 其他好文 > 详细

Yii2.0 自定义日志类

时间:2016-05-19 06:52:50      阅读:536      评论:0      收藏:0      [点我收藏+]

标签:yii   yii2.0   yii2.0 log   yii2.0日志   

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

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

<?php
namespace app\extensions\utils;

use Yii;
use yii\helpers\FileHelper;
use yii\log\FileTarget;

class FileLog extends FileTarget
{
    public function init()
    {
        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了。

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

<?php
namespace app\controllers;

use Yii;
use yii\log\Logger;
use yii\web\Controller;
use app\extensions\utils\FileLog;

class PayController extends Controller
{

    public function actionIndex()
    {
        $log = new FileLog();
        $log->messages[]=[‘fff‘,Logger::LEVEL_INFO,‘‘,time()];
        $log->export();
    }
}
/**
*text string 日志内容
*level int 信息等级,这个你可以自己定义。我就是用的yii的
*categories string 信息分类,这个根据yii的文档,是可以对错误进行分类,
*比如数据库,是连时候的错误,还是运行时候的错误
*timestamp int 这个就是时间戳了
*message[$text,$level,$categories,$timestamp]
*/


本文出自 “PHP学习” 博客,请务必保留此出处http://xtceetg.blog.51cto.com/5086648/1774887

Yii2.0 自定义日志类

标签:yii   yii2.0   yii2.0 log   yii2.0日志   

原文地址:http://xtceetg.blog.51cto.com/5086648/1774887

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!