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(1)
Oct 09 PHP
PHP foreach循环使用详解与实例代码
May 08 PHP
php中++i 与 i++ 的区别
Aug 08 PHP
PHP实现生成透明背景的PNG缩略图函数分享
Jul 08 PHP
ajax+php控制所有后台函数调用
Jul 15 PHP
PHP随手笔记整理之PHP脚本和JAVA连接mysql数据库
Nov 25 PHP
JavaScript实现删除电脑的关机键
Jul 26 PHP
Laravel中基于Artisan View扩展包创建及删除应用视图文件的方法
Oct 08 PHP
thinkPHP5.0框架引入Traits功能实例分析
Mar 18 PHP
简单谈谈PHP面向对象之标识对象
Jun 27 PHP
PHP结合Ffmpeg快速搭建流媒体服务的实践记录
Oct 31 PHP
yii框架结合charjs实现统计30天数据的方法
Apr 04 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如何利用pecl安装mongodb扩展详解
2019/01/09 PHP
Thinkphp5框架实现获取数据库数据到视图的方法
2019/08/14 PHP
Laravel中GraphQL接口请求频率实战记录
2020/09/01 PHP
一个高效的JavaScript压缩工具下载集合
2007/03/06 Javascript
firefox事件处理之自动查找event的函数(用于onclick=foo())
2010/08/05 Javascript
jQuery1.3.2 升级到jQuery1.4.4需要修改的地方
2011/01/06 Javascript
js判断输入是否为数字的具体实例
2013/08/03 Javascript
一个支持任意尺寸的图片上下左右滑动效果
2014/08/24 Javascript
javascript中动态函数用法实例分析
2015/05/14 Javascript
js和C# 时间日期格式转换的简单实例
2016/05/28 Javascript
AngularJs自定义服务之实现签名和加密
2016/08/02 Javascript
Nodejs中解决cluster模块的多进程如何共享数据问题
2016/11/10 NodeJs
javascript验证香港身份证的格式或真实性
2017/02/07 Javascript
JS数组去重(4种方法)
2017/03/27 Javascript
JS获取短信验证码倒计时的实现代码
2017/05/22 Javascript
vue组件中的样式属性scoped实例详解
2018/10/30 Javascript
Vue.js 中的 v-cloak 指令及使用详解
2018/11/19 Javascript
vue学习笔记之slot插槽基本用法实例分析
2020/02/01 Javascript
vscode 调试 node.js的方法步骤
2020/09/15 Javascript
[46:28]EG vs Liquid 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.23
2019/09/05 DOTA
python抓取某汽车网数据解析html存入excel示例
2013/12/04 Python
Python实现好友全头像的拼接实例(推荐)
2017/06/24 Python
对python中raw_input()和input()的用法详解
2018/04/22 Python
Python实现按逗号分隔列表的方法
2018/10/23 Python
Python实现字典按key或者value进行排序操作示例【sorted】
2019/05/03 Python
Python实现平行坐标图的两种方法小结
2019/07/04 Python
wxpython实现按钮切换界面的方法
2019/11/19 Python
Python常用库Numpy进行矩阵运算详解
2020/07/21 Python
Python操作PostgreSql数据库的方法(基本的增删改查)
2020/12/29 Python
什么是数组名
2012/05/10 面试题
静态成员和非静态成员的区别
2012/05/12 面试题
草船借箭教学反思
2014/02/03 职场文书
四查四看剖析材料
2014/02/14 职场文书
乡镇网格化管理实施方案
2014/03/23 职场文书
学雷锋感言
2015/08/03 职场文书
学术会议开幕词
2016/03/03 职场文书