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自动适应范围的分页代码
Aug 05 PHP
php在线代理转向代码
May 05 PHP
PHP中的str_repeat函数在JavaScript中的实现
Sep 16 PHP
通过Email发送PHP错误的方法
Jul 20 PHP
php构造方法中析构方法在继承中的表现
Apr 12 PHP
php简单创建zip压缩文件的方法
Apr 30 PHP
Smarty模板简单配置与使用方法示例
May 23 PHP
PHP+iframe图片上传实现即时刷新效果
Nov 18 PHP
php+js实现百度地图多点标注的方法
Nov 30 PHP
thinkPHP实现的联动菜单功能详解
May 05 PHP
PHP针对伪静态的注入总结【附asp与Python相关代码】
Aug 01 PHP
php生成二维码不保存服务器还有下载功能的实现代码
Aug 09 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
利用 window_onload 实现select默认选择
2006/10/09 PHP
PHP 图片上传实现代码 带详细注释
2010/04/29 PHP
php全角字符转换为半角函数
2014/02/07 PHP
php内嵌函数用法实例
2015/03/20 PHP
php array_udiff_assoc 计算两个数组的差集实例
2016/11/12 PHP
Gambit vs CL BO3 第二场 2.13
2021/03/10 DOTA
checkbox 复选框不能为空
2009/07/11 Javascript
JS 日期验证正则附asp日期格式化函数
2009/09/11 Javascript
点击下载链接 弹出页面实现代码
2009/10/01 Javascript
js 实现无干扰阴影效果 简单好用(附文件下载)
2009/12/27 Javascript
JavaScript中的作用域链和闭包
2012/06/30 Javascript
jQuery中removeClass()方法用法实例
2015/01/05 Javascript
CSS javascript 结合实现悬浮固定菜单效果
2015/08/23 Javascript
jQuery筛选数组之grep、each、inArray、map的用法及遍历json对象
2016/06/20 Javascript
js for循环倒序输出数组元素的实例
2017/03/01 Javascript
Vue开发之封装分页组件与使用示例
2019/04/25 Javascript
[56:17]NB vs Infamous 2019国际邀请赛淘汰赛 败者组 BO3 第三场 8.22
2019/09/05 DOTA
[43:18]NB vs Infamous 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.22
2019/09/05 DOTA
跟老齐学Python之变量和参数
2014/10/10 Python
python通过邮件服务器端口发送邮件的方法
2015/04/30 Python
Python 多进程和数据传递的理解
2017/10/09 Python
Python中logging.NullHandler 的使用教程
2018/11/29 Python
用python一行代码得到数组中某个元素的个数方法
2019/01/28 Python
Python面向对象程序设计之类的定义与继承简单示例
2019/03/18 Python
Python占用的内存优化教程
2019/07/28 Python
你还在@微信官方?聊聊Python生成你想要的微信头像
2019/09/25 Python
Python3自定义json逐层解析器代码
2020/05/11 Python
Python爬取微信小程序Charles实现过程图解
2020/09/29 Python
有750多个顶级品牌的瑞士时尚在线:ABOUT YOU
2017/01/04 全球购物
美国紧身牛仔裤品牌:NYDJ
2017/05/24 全球购物
聚美优品陈欧广告词
2014/03/14 职场文书
英文自荐信常用句子
2014/03/26 职场文书
高二学年自我鉴定范文(2篇)
2014/09/26 职场文书
北京故宫的导游词
2015/01/31 职场文书
python 实现的截屏工具
2021/05/08 Python
利用Java连接Hadoop进行编程
2022/06/28 Java/Android