Yii2框架中日志的使用方法分析


Posted in PHP onMay 22, 2017

本文实例讲述了Yii2框架中日志的使用方法。分享给大家供大家参考,具体如下:

Yii2和Yii1.x的区别

Yii2里面日志的使用方法和Yii 1.x并不相同,

在Yii 1.x中,记录日志的方法为

Yii::log($message, $level, $category);
Yii::trace($message, $category);

后者仅在调试模式下记录日志。

这里的log方法是YiiBase的静态方法。

在Yii2中,面向对象的设计贯彻得更加彻底,日志记录功能被转移到Logger类中,并支持多种输出目标(Targets)。

Yii2中的日志使用方法

为了记录日志,你首先需要获取Logger类单一实例,然后调用该类的公有日志记录方法:

Yii::getLogger()->log($msg, $level, $category)

实例如下:

Yii::getLogger()->log(“your site has been hacked”, Logger::LEVEL_ERROR)
//默认category为application即应用程序级别的日志

此外Yii2提供了一些快捷方法:

Yii::trace() 用于开发调试时记录日志,需要把 YII_DEBUG 设置为 true.
Yii::error() 用于记录不可恢复的错误
Yii::warning() 一些警告信息
Yii::info() 一些系统行为记录如管理员操作提示

Yii2定制日志输出目标

要定制目标,比如想在发生不可恢复错误时同时记录文件和发送邮件,可定制如下:

[
  'bootstrap' => ['log'], // ensure logger gets loaded before application starts
  'components' => [
    'log' => [
      'targets' => [
        'file' => [
          'class' => 'yii\log\FileTarget',
          'levels' => ['trace', 'info'],
          'categories' => ['yii\*'],
        ],
        'email' => [
          'class' => 'yii\log\EmailTarget',
          'levels' => ['error', 'warning'],
          'message' => [
            'to' => ['admin@techbrood.com', 'support@techbrood.com'],
            'subject' => 'New example.com log message',
          ],
        ],
      ],
    ],
  ],
]

更多日志及调试器内容,请参见Yii2权威指南中文版

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

PHP 相关文章推荐
Apache, PHP在Windows 9x/NT下的安装与配置 (二)
Oct 09 PHP
header()函数使用说明
Nov 23 PHP
PHP运行时强制显示出错信息的代码
Apr 20 PHP
克隆一个新项目的快捷方式
Apr 10 PHP
PHP入门经历和学习过程分享
Apr 11 PHP
Yii2实现log输出到file及database的方法
Nov 12 PHP
ThinkPHP3.1.x修改成功与失败跳转页面的方法
Sep 29 PHP
PHP 中魔术常量的实例详解
Oct 26 PHP
Ajax请求PHP后台接口返回信息的实例代码
Aug 21 PHP
PHP实现一个轻量级容器的方法
Jan 28 PHP
laravel添加前台跳转成功页面示例
Oct 22 PHP
深入理解PHP+Mysql分布式事务与解决方案
Dec 03 PHP
浅谈PHP面向对象之访问者模式+组合模式
May 22 #PHP
php readfile下载大文件失败的解决方法
May 22 #PHP
老生常谈PHP 文件写入和读取(必看篇)
May 22 #PHP
PHP中trait使用方法详细介绍
May 21 #PHP
php写app接口并返回json数据的实例(分享)
May 20 #PHP
PHP实现json_decode不转义中文的方法
May 20 #PHP
Yii框架参数化查询中IN查询只能查询一个的解决方法
May 20 #PHP
You might like
php实现的百度搜索某地天气的小偷代码
2014/04/23 PHP
ThinkPHP中关联查询实例
2014/12/02 PHP
PHP生成图片验证码功能示例
2017/01/12 PHP
ThinkPHP实现简单登陆功能
2017/04/28 PHP
PHP设计模式之装饰器模式实例详解
2018/02/07 PHP
PHP时间处理类操作示例
2018/09/05 PHP
Javascript 函数中的参数使用分析
2010/03/27 Javascript
基于jquery的无缝循环新闻列表插件
2011/03/07 Javascript
JQuery里选择超链接的实现代码
2011/05/22 Javascript
js调用后台servlet方法实例
2013/06/09 Javascript
将json当数据库一样操作的javascript lib
2013/10/28 Javascript
JS页面延迟执行一些方法(整理)
2013/11/11 Javascript
利用jquery动画特效和css打造的侧边弹出垂直导航
2014/04/04 Javascript
javascript模拟post提交隐藏地址栏的参数
2014/09/03 Javascript
Javascript基础知识(一)核心基础语法与事件模型
2014/09/29 Javascript
JS实现带缓冲效果打开、关闭、移动一个层的方法
2015/05/09 Javascript
jquery实现文字单行横移或翻转(上下、左右跳转)
2017/01/08 Javascript
React props和state属性的具体使用方法
2018/04/12 Javascript
微信小程序在地图选择地址并返回经纬度简单示例
2018/12/03 Javascript
JavaScript页面倒计时功能完整示例
2019/05/15 Javascript
[06:23]2014DOTA2西雅图国际邀请赛 小组赛7月12日TOPPLAY
2014/07/12 DOTA
Python实现的简单文件传输服务器和客户端
2015/04/08 Python
Python3实现的反转单链表算法示例
2019/03/08 Python
Python使用sqlalchemy模块连接数据库操作示例
2019/03/13 Python
50行Python代码获取高考志愿信息的实现方法
2019/07/23 Python
nginx搭建基于python的web环境的实现步骤
2020/01/03 Python
python matplotlib.pyplot.plot()参数用法
2020/04/14 Python
python中doctest库实例用法
2020/12/31 Python
纽约市的奢华内衣目的地:Anya Lust
2019/08/02 全球购物
学生党员思想汇报范文
2014/01/09 职场文书
《邮票齿孔的故事》教学反思
2014/02/22 职场文书
英文导游词
2015/02/13 职场文书
升职自荐信怎么写
2015/03/05 职场文书
2015年教研组工作总结
2015/05/04 职场文书
同事打架检讨书
2015/05/06 职场文书
读《儒林外史》有感:少一些功利,多一些真诚
2020/01/19 职场文书