今天试着把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' => 'yii\swiftmailer\Mailer',
'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' => 'yii\log\EmailTarget',
'levels' => ['error','info'],
'categories' => ['email_log'], #该email_log 会在日志方法使用时使用到
'message' => [
'from' => ['**@163.com'],
'to' => ['**@qq.com'],
'subject' => 'Database errors at example.com',
],
],
[
'class' => 'yii\log\FileTarget',
'levels' => ['error', 'warning'],
],
],
];

  

3.路由编写

#(frontend/config/routes.php)

return ['GET log-test'  => 'demo/log-test'];

  

4.控制器编写

<?php
namespace frontend\controllers; use Yii;
use yii\debug\models\search\Log;
use yii\log\EmailTarget;
use yii\web\Controller; /**
* Site controller
*/
class DemoController extends Controller{ public $layout = false; //不使用布局
public $enableCsrfValidation=false; /**
* ======================================================================
* 测试日志生成 - 发送邮件
*/
public function actionLogTest()
{
Yii::info("logging info", 'email_log');
}
}

  

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

我 && yii2(日志埋点,邮件提醒)的更多相关文章

  1. Jenkins使用QQ邮箱构建邮件提醒服务

    前置条件: 已安装好Jenkins服务端 步骤: 访问Jenkins服务端(ip+端口),登录Jenkins 点击系统管理 选择管理插件 选择可选插件 搜索Mailer Plugin 点击直接安装 点 ...

  2. Jenkins 实现前端自动打包,自动部署代码及邮件提醒功能

    在之前的公司,我们前端使用webpack构建项目,项目构建完成后,我们会使用ftp或linux的一些命令工具上传我们的文件到服务器上,这种方式虽然是可以,但是最近面试的时候,人家会问我前端如何部署项目 ...

  3. 2.jenkins配置邮件提醒

    1.前言 在Jenkins的使用中邮件提醒是一个常用功能,Jenkins默认安装了Mailer Plugin插件用于实现此功能. 2.邮件服务器配置 首先在Jenkins的"系统管理&quo ...

  4. c#之Redis队列在邮件提醒中的应用

    场景 有这样一个场景,一个邮件提醒的windows服务,获取所有开启邮件提醒的用户,循环获取这些用户的邮件,发送一条服务号消息.但问题来了,用户比较少的情况下,轮询一遍时间还能忍受,如果用户多了,那用 ...

  5. WordPress设置固定链接和邮件提醒遇到的问题

    固定链接1.WordPress根目录下有一个.h...文件,记录文章链接类型对应的配置,要保证该文件的可写全权限:2.设置Apache2的rewrite模块启动,/etc/apache2/modle- ...

  6. Python 实现接口类的两种方式+邮件提醒+动态导入模块+反射(参考Django中间件源码)

    实现接口类的两种方式 方式一 from abc import ABCMeta from abc import abstractmethod class BaseMessage(metaclass=AB ...

  7. Yii2 日志处理

    最近开发一个新的PHP项目,终于脱离了某框架的魔爪(之前被折磨的不轻),选用了江湖中如雷贯耳的Yii2框架.每个项目代码的运行,日志是必不可少的,在开发中踩了一遍Yii2日志管理的坑,看过很多网上对Y ...

  8. Python-定时爬取指定城市天气(二)-邮件提醒

    目录 一.概述 二.模块重新划分 三.优化定时任务 四.发送邮件 五.源代码 一.概述 上一篇文章python-定时爬取指定城市天气(一)-发送给关心的微信好友中我们讲述了怎么定时爬取城市天气,并发送 ...

  9. gitlab11.5.4 配置邮件提醒

    gitlab 配置邮件提醒 gitlab_rails['smtp_enable'] = true gitlab_rails['smtp_address'] = "smtp.qiye.163. ...

随机推荐

  1. javascript-with()方法

    1)简要说明         with 语句可以方便地用来引用某个特定对象中已有的属性,但是不能用来给对象添加属性.要给对象创建新的属性,必须明确地引用该对象. 2)语法格式  with(object ...

  2. TFS 2010 迁移/重装/还原 步骤

    1.签入所有代码 2.停止TFS服务:运行命令行,并将路径切换到TFS安装路径:C:\Program Files\Microsoft Team Foundation Server 2010\Tools ...

  3. js的原型模式

    以下内容来自<JavaScript高级程序设计>第三版 我们创建的每个函数都有一个prototype(原型)属性,这个属性是一个指针,指向一个对象,而这个对象的用途是包含可以由特定类型的所 ...

  4. 灵活运用 SQL SERVER FOR XML PATH

    FOR XML PATH 有的人可能知道有的人可能不知道,其实它就是将查询结果集以XML形式展现,有了它我们可以简化我们的查询语句实现一些以前可能需要借助函数活存储过程来完成的工作.那么以一个实例为主 ...

  5. assert的用法

    assert用来调试时,判断一个语句是否为真. assert是宏,而不是函数.在C的assert.h 头文件中. assert的作用是先计算表达式 expression ,如果其值为假(即为0),那么 ...

  6. RabbitMQ的work queue(2)

    课堂上work queue没能很好的理解,看了大神的博客,顿觉醍醐灌顶,豁然开朗. work queue有两种模式: 平均分配:(默认)//channel.basicQos(1);即把 同一时刻服务器 ...

  7. PDF的信息表达原理及特点分析

    一.PDF概述 PDF(Portable Document Format)是一种结构化的文档格式.它由美国著名排版与图像处理软件Adobe公司于1993年首次发布(1.0版),并于同年推出了其相应的支 ...

  8. MVC 之 T4模板简介

    个人网站地址:nee32.com 一.T4模板内容简介 为了更好地学习T4模板,我们安装一个插件tangible T4 Editor 在使用了EF生成实体类后,我们会发现一个.tt后缀的文件,它就是T ...

  9. Types of Learning

    从四个角度大致总结一下不同类型的机器学习问题. 1. 按照输出空间的变化: 分类问题(二分类.多分类).回归问题 2. 按照输出的标记变化: 监督学习 与 非监督学习 与 半监督学习(树的识别) 与 ...

  10. 修改订单的收货时间(MySQL)脚本

    需求 下单时间为21:00-23:59,并且收货时间为第二天的订单,将这些订单的收货时间改为第三天: #!/bin/bash ###time:2016-04-26 ###This script is ...