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.ini中文版
Oct 09 PHP
php 页面执行时间计算代码
Dec 04 PHP
解析PHP函数array_flip()在重复数组元素删除中的作用
Jun 27 PHP
php绘图之在图片上写中文和英文的方法
Jan 24 PHP
PHPExcel读取EXCEL中的图片并保存到本地的方法
Feb 14 PHP
php简单smarty入门程序实例
Jun 11 PHP
php微信高级接口群发 多客服
Jun 23 PHP
php中static和const关键字用法分析
Dec 07 PHP
PHP函数rtrim()使用中的怪异现象分析
Feb 24 PHP
PHP钩子实现方法解析
May 21 PHP
解决PHP curl或file_get_contents下载图片损坏或无法打开的问题
Oct 11 PHP
TP3.2.3框架使用CKeditor编辑器在页面中上传图片的方法分析
Dec 31 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
Linux Apache PHP Oracle 安装配置(具体操作步骤)
2013/06/17 PHP
php中Socket创建与监听实现方法
2015/01/05 PHP
PHP 常用的header头部定义汇总
2015/06/19 PHP
php redis实现对200w用户的即时推送
2017/03/04 PHP
php实现用户注册密码的crypt加密
2017/06/08 PHP
jQuery帮助之CSS尺寸(五)outerHeight、outerWidth
2009/11/14 Javascript
java和javascript获取word文档的书签位置对比
2014/06/19 Javascript
jQuery图片轮播滚动切换代码分享
2020/04/20 Javascript
JavaScript判断用户名和密码不能为空的实现代码
2016/05/16 Javascript
Bootstrap 布局组件(全)
2016/07/18 Javascript
Node.js的环境安装配置(使用nvm方式)
2016/10/11 Javascript
jquery插入兄弟节点的操作方法
2016/12/07 Javascript
JS仿Base.js实现的继承示例
2017/04/07 Javascript
关于JS与jQuery中的文档加载问题
2017/08/22 jQuery
vue实现个人信息查看和密码修改功能
2018/05/06 Javascript
解决linux下node.js全局模块找不到的问题
2018/05/15 Javascript
6行代码实现微信小程序页面返回顶部效果
2018/12/28 Javascript
vue车牌号校验和银行校验实战
2019/01/23 Javascript
详解小程序毫秒级倒计时(适用于拼团秒杀功能)
2019/05/05 Javascript
使用django-suit为django 1.7 admin后台添加模板
2014/11/18 Python
简单介绍Python中的floor()方法
2015/05/15 Python
Python3.2中Print函数用法实例详解
2015/05/19 Python
python版简单工厂模式
2017/10/16 Python
python 按照固定长度分割字符串的方法小结
2018/04/30 Python
基于Python中的yield表达式介绍
2019/11/19 Python
python线程信号量semaphore使用解析
2019/11/30 Python
Python如何把Spark数据写入ElasticSearch
2020/04/18 Python
python接口自动化框架实战
2020/12/23 Python
CSS3 圆角效果
2009/07/15 HTML / CSS
HTML 5 标签、属性、事件及浏览器兼容性速查表 附打包下载
2012/10/20 HTML / CSS
Spartoo荷兰:鞋子、包包和服装
2018/07/12 全球购物
寻找迷宫的一条出路,o通路;X:障碍
2016/07/10 面试题
小学岗位竞聘方案
2014/01/22 职场文书
中国梦演讲稿3分钟
2014/08/19 职场文书
如何做好工作总结!
2019/04/10 职场文书
python开发的自动化运维工具ansible详解
2021/08/07 Python