zoukankan      html  css  js  c++  java
  • 我 && yii2(日志埋点,邮件提醒)

    今天试着把yii2 的日志,如果发送邮件的形式实现,具体实现如下

    1.环境介绍

    lnmp php5.6, mysql5.5, lnmp1.2

    yii2-advanced

    2.配置文件的编写

    • 在frontend/config/main.php 添加mailer 和 log 的配置
    'mailer'    => require_once '../config/mail.php',
    'log'   => require_once '../config/log.php',
    

      

    • mailer的配置如下(frontend/config/mail.php)
    <?php
    return [
        'class' => 'yiiswiftmailerMailer',
        'viewPath' => '@common/mail',
        'useFileTransport' => false,
        'transport' => [
            'class' => 'Swift_SmtpTransport',
            'host' => 'smtp.163.com',
            'username' => '**@163.com',
            'password' => '****',
            'port' => '25',
            'encryption' => 'tls',
        ],
        'messageConfig'=>[
            'charset'=>'UTF-8',
            'from'=>['zeopean@163.com'=>'zeopean']
        ],
    ];
    

      

    • log的配置如下(frontend/config/log.php)
    <?php
    return [
        'traceLevel' => YII_DEBUG ? 3 : 0,
        'targets' => [
            [
                'class' => 'yiilogEmailTarget',
                'levels' => ['error','info'],
                'categories' => ['email_log'],      #该email_log 会在日志方法使用时使用到
                'message' => [
                    'from' => ['**@163.com'],
                    'to' => ['**@qq.com'],
                    'subject' => 'Database errors at example.com',
                ],
            ],
            [
                'class' => 'yiilogFileTarget',
                'levels' => ['error', 'warning'],
            ],
        ],
    ];
    

      

    3.路由编写

    #(frontend/config/routes.php)
    
    return ['GET log-test'  => 'demo/log-test'];
    

      

    4.控制器编写

    <?php
    namespace frontendcontrollers;
    
    use Yii;
    use yiidebugmodelssearchLog;
    use yiilogEmailTarget;
    use yiiwebController;
    
    
    /**
     * Site controller
     */
    class DemoController extends Controller{
    
        public $layout = false; //不使用布局
        public  $enableCsrfValidation=false;
        
        /**
         * ======================================================================
         * 测试日志生成 - 发送邮件
         */
        public function actionLogTest()
        {
            Yii::info("logging info", 'email_log');
        }
    }
    

      

    ok,运行后,邮件便可以收到了。至于其他的日志模式,就需要按照实际的业务来进行了。

  • 相关阅读:
    LeetCode 566 重塑矩阵
    LeetCode 283 移动零
    C++Template(类模板二)
    Qt之简单绘图实现
    QT控件之QSlider
    Redis
    布局总结三: icon图标+标题上下两排排列
    vue中在data中引入图片的路径方法
    布局总结二:宽高比固定比例---移动端
    在vue中使用vue-awesome-swiper插件
  • 原文地址:https://www.cnblogs.com/zeopean/p/6023615.html
Copyright © 2011-2022 走看看