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 相关文章推荐
PHP个人网站架设连环讲(三)
Oct 09 PHP
对Session和Cookie的区分与解释
Mar 16 PHP
PHP入门学习笔记之一
Oct 12 PHP
php编写一个简单的路由类
Apr 13 PHP
php中json_decode()和json_encode()的使用方法
Jun 04 PHP
zend Framework中的Layout(模块化得布局)详解
Jun 28 PHP
PHP 伪静态技术原理以及突破原理实现介绍
Jul 12 PHP
php实现根据url自动生成缩略图的方法
Sep 23 PHP
php封装的数据库函数与用法示例【参考thinkPHP】
Nov 08 PHP
使用laravel和ajax实现整个页面无刷新的操作方法
Oct 03 PHP
laravel 实现上传图片到本地和前台访问示例
Oct 21 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文件打开、关闭、写入的判断与执行代码
2011/05/24 PHP
PHP共享内存用法实例分析
2016/02/12 PHP
php编译安装php-amq扩展简明教程
2016/06/25 PHP
通过隐藏option实现select的联动效果
2009/11/10 Javascript
基于jquery的一个图片hover的插件
2010/04/24 Javascript
js和as的稳定传值问题解决
2013/07/14 Javascript
js实现文本框选中的方法
2015/05/26 Javascript
javascript实现的登陆遮罩效果汇总
2015/11/09 Javascript
第四篇Bootstrap网格系统偏移列和嵌套列
2016/06/21 Javascript
javascript特效实现——当前时间和倒计时效果的简单实例
2016/07/20 Javascript
js无法获取到html标签的属性的解决方法
2016/07/26 Javascript
jQuery ui autocomplete选择列表被Bootstrap模态窗遮挡的完美解决方法
2016/09/23 Javascript
jQuery 点击获取验证码按钮及倒计时功能
2018/09/20 jQuery
vuex如何重置所有state(可定制)
2019/01/17 Javascript
关于JSON解析的实现过程解析
2019/10/08 Javascript
解决vue无法侦听数组及对象属性的变化问题
2020/07/17 Javascript
JavaScript 监听组合按键思路及代码实现
2020/07/28 Javascript
[54:06]OG vs TNC 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
[01:06:54]DOTA2-DPC中国联赛 正赛 SAG vs DLG BO3 第二场 2月28日
2021/03/11 DOTA
Python内建数据结构详解
2016/02/03 Python
python并发编程之线程实例解析
2017/12/27 Python
解决pycharm无法识别本地site-packages的问题
2018/10/13 Python
如何用Python制作微信好友个性签名词云图
2019/06/28 Python
pandas 对group进行聚合的例子
2019/12/27 Python
python基于event实现线程间通信控制
2020/01/13 Python
在django中使用post方法时,需要增加csrftoken的例子
2020/03/13 Python
Python文件操作基础流程解析
2020/03/19 Python
使用Keras中的ImageDataGenerator进行批次读图方式
2020/06/17 Python
python实现文件+参数发送request的实例代码
2021/01/05 Python
美国波道夫·古德曼百货官网:Bergdorf Goodman
2017/11/07 全球购物
北美女性服装零售连锁店:maurices
2019/06/12 全球购物
工程项目经理任命书
2014/06/05 职场文书
擅自离岗检讨书
2014/09/12 职场文书
欠条格式范本
2015/07/03 职场文书
《认识年月日》教学反思
2016/02/19 职场文书
win10电脑双屏显示一个黑屏怎么办?win10电脑双屏显示一个黑屏解决方法
2022/07/15 数码科技