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]
*/
时间: 2024-10-21 07:21:40

Yii2.0 自定义日志类的相关文章

[Enterprise Library for .NET Framework 2.0]自定义日志路径或日志文件名称

有时候,日志输出的时候会根据时间来分类,譬如"20140821\trace.log",在Enterprise Library中通过工具配置,只能定义日志文件名称,可以通过代码修改FlatFileTraceListenerData实现或Custom Trace Listener方式, 通过代码修改FlatFileTraceListenerData实现代码如下: public static string GetTraceLogPath(string listenersName) { str

Spring Boot 2.0+ 自定义配置类扩展springMVC的功能

在spring boot1.0+,我们可以使用WebMvcConfigurerAdapter来扩展springMVC的功能,其中自定义的拦截器并不会拦截静态资源(js.css等). 在Spring Boot2.0版本中,WebMvcConfigurerAdapter这个类被弃用了. @Deprecated public abstract class WebMvcConfigurerAdapter implements WebMvcConfigurer { 那么我们如何来扩展关于MVC的配置呢?

Yii2.0自定义验证码

第一步,控制器: 在任意controller里面重写方法 第二步,表单模型: 这里只给出验证码相关的部分. 验证规则里面验证码的验证器是captcha. 第三步,视图: 用ActiveForm生成对应字段. captchaAction参数指定第一步是在写在哪里的,默认是site里面. 验证码,生成和验证的整个流程就完成了. 以上是生成验证码的流程,因为验证码数字是在代码中写死的,如果我们需要数字的话,那该怎么办呢? 很好办,我们可以自己写个类来继承CaptchaAction,重写generate

Yii2.0中(Hash is invalid error)验证错误

老项目数据迁移到Yii2.0后,密码仍使用md5加密.但是通过yii2.0的验证类的validatePassword($password)函数验证始终返回false: public function validatePassword($password){if(is_null($this->password)) return false;return Yii::$app->getSecurity()->validatePassword($this->salt . $password

Yii2.0中Mailer收发邮件详解

Yii2.0封装的类足够强大,Mailer的使用方法做一个总结:1.先在main-local.php中做好配置: return [//....'components' => ['mailer' => ['class' => 'yii\swiftmailer\Mailer',],],]; 详细如下: return [//....'components' => [ 'viewPath' => '@common/mail', 'useFileTransport' =>fals

YII2 自定义日志路径

YII 提供的日志写入方法: 1.Yii::getLogger()->log($message, $level, $category = 'application') 2.Yii::trace($message, $category = 'application'); 3.Yii::error($message, $category = 'application');4.Yii::warning($message, $category = 'application');5.Yii::info($

安卓开发技巧二:自定义日志工具类XLog的实现

我们在开发过程中,打印日志是必不可少的一个调试环节,然而,直接使用系统自带的Log日志类,并不能满足我们实际项目的需求:假如我们现在在开发一款比较大的项目,用到打印日志的地方肯定特别多,等到真正上线的时候,我们是不希望日志依旧能够打印出的,原因很简单,不仅多少有些影响效率,更有可能导致信息的泄露,所以我们就需要把所有的日志打印语句全部取消掉,难道我们真的一个一个的去删除这些打印日志的语句吗?项目那么大,就是想删除,也得耗费大量的时间和精力!大家不用怕,笔者这就给大家带来一款控制线上版本和线下版本

支持异步写入的日志类,支持Framework2.0

因为工作需要需要在XP上运行一个C#编写的Winform插件,我就用Framework2.0,因为存在接口交互所以想保留交易过程的入参出参. 考虑到插件本身实施的因素,就没有使用Log4.NLog等成熟的日志插件.在网上搜索了一个是通过TextWriterTraceListener实现的,但是实际使用 过程中发现并没实现我想要的功能,于是乎自己重新造了个轮子,如果大家有需要可以参考下. 1 /// <summary> 2 /// 日志类型 3 /// </summary> 4 pu

yii2.0 框架 载入 PHPExcel 类

我用的是composer 安装的, 自己引入的话找了好多的方法但是都不能引入 所以找了这个简单一点的. composer require "phpoffice/phpexcel"    用这个命令下载就可以(等一会时间),前提是你已经安装的composer 如果没有,就安装一个,就不多说了. 安装完成后 window 下打开命令窗口 输入compposer 查看是否安装成功,然后打开你的yii2.0(高级版)框架的verdor 这个文件夹 Shift+右键,打开命令窗口,运行上面那个下