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 相关文章推荐
利用discuz自带通行证整合dedecms的方法以及文件下载
Mar 06 PHP
PHP 反向排序和随机排序代码
Jun 30 PHP
用php来改写404错误页让你的页面更友好
Jan 24 PHP
PHP自动重命名文件实现方法
Nov 04 PHP
PDO预处理语句PDOStatement对象使用总结
Nov 20 PHP
ThinkPHP自动完成中使用函数与回调方法实例
Nov 29 PHP
php判断当前用户已在别处登录的方法
Jan 06 PHP
PHP实现动态柱状图改进版
Mar 30 PHP
php操作redis缓存方法分享
Jun 03 PHP
php日期操作技巧小结
Jun 25 PHP
PHP查询分页的实现代码
Jun 09 PHP
解决php写入数据库乱码的问题
Sep 17 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性能优化准备篇图解PEAR安装
2011/12/05 PHP
在wamp集成环境下升级php版本(实现方法)
2013/07/01 PHP
php利用header函数下载各种文件
2016/08/24 PHP
php微信公众号开发(4)php实现自定义关键字回复
2016/12/15 PHP
详解Yii2.0 rules验证规则集合
2017/03/21 PHP
thinkphp5.1 框架导入/导出excel文件操作示例
2020/05/25 PHP
IE6下js通过css隐藏select的一个bug
2010/08/16 Javascript
让元素在网页中可拖动示例代码
2013/08/13 Javascript
jquery实现浮动的侧栏实例
2015/06/25 Javascript
基于jQuery实现美观且实用的倒计时实例代码
2015/12/30 Javascript
JS中用childNodes获取子元素换行会产生一个子元素
2016/12/08 Javascript
如何提高数据访问速度
2016/12/26 Javascript
Bootstrap表格使用方法详解
2017/02/17 Javascript
利用prop-types第三方库对组件的props中的变量进行类型检测
2017/05/02 Javascript
详解node+express+ejs+bootstrap构建项目
2017/09/27 Javascript
jQuery实现页码跳转式动态数据分页
2017/12/31 jQuery
koa2实现登录注册功能的示例代码
2018/12/03 Javascript
页面内锚点定位及跳转方法总结(推荐)
2019/04/24 Javascript
Vue组件化开发之通用型弹出框的实现
2020/02/28 Javascript
详解在Vue.js编写更好的v-for循环的6种技巧
2020/04/14 Javascript
python numpy 显示图像阵列的实例
2018/07/02 Python
详解Python下Flask-ApScheduler快速指南
2018/11/04 Python
解决python 3 urllib 没有 urlencode 属性的问题
2019/08/22 Python
TensorFlow 输出checkpoint 中的变量名与变量值方式
2020/02/11 Python
浅谈keras中的后端backend及其相关函数(K.prod,K.cast)
2020/06/29 Python
HTML5实现移动端弹幕动画效果
2019/08/01 HTML / CSS
什么是smarty? Smarty的优点是什么?
2013/08/11 面试题
生产现场工艺工程师岗位职责
2013/11/28 职场文书
环境科学专业个人求职信
2013/12/15 职场文书
标准大学生职业生涯规划书写作指南
2014/09/18 职场文书
四川省传达学习贯彻党的群众路线教育实践活动总结大会精神新闻稿
2014/10/26 职场文书
农村党员学习党的群众路线教育实践活动心得体会
2014/11/04 职场文书
个人工作表现自我评价
2015/03/06 职场文书
教你用python控制安卓手机
2021/05/13 Python
Mysql分库分表之后主键处理的几种方法
2022/02/15 MySQL
SpringBoot2零基础到精通之数据库专项精讲
2022/03/22 Java/Android