• 我 && 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,运行后,邮件便可以收到了。至于其他的日志模式,就需要按照实际的业务来进行了。

  • 相关阅读:
    Solr基础知识二(导入数据)
    Solr基础知识一(安装配置)
    企业微信机器人
    Mysql+Keepalived双主热备高可用操作记录
    mysql互为主从(双主)配置
    编译安装msyql
    JS 常用的一些功能性函数 (自用)
    JavaScrip 之 DOM (回顾)
    MySQL的表定义语法
    MySQL的数据库定义语法
  • 原文地址:https://www.cnblogs.com/zeopean/p/6023615.html
Copyright © 2020-2023  润新知