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 相关文章推荐
常用表单验证类,有了这个,一般的验证就都齐了。
Dec 06 PHP
php编写一个简单的路由类
Apr 13 PHP
PHP flock 文件锁详细介绍
Dec 29 PHP
phpadmin如何导入导出大数据文件及php.ini参数修改
Feb 18 PHP
如何批量替换相对地址为绝对地址(利用bat批处理实现)
May 27 PHP
div li的多行多列 无刷新分页示例代码
Oct 16 PHP
php中addslashes函数与sql防注入
Nov 17 PHP
详解PHP中的Traits
Jul 29 PHP
CI框架实现优化文件上传及多文件上传的方法
Jan 04 PHP
php实现对文件压缩简单的方法
Sep 29 PHP
使用 PHP Masked Package 屏蔽敏感数据的实现方法
Oct 15 PHP
PHP字符串与数组处理函数用法小结
Jan 07 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
Laravel中日期时间处理包Carbon的简单使用
2017/09/21 PHP
刷新页面实现方式总结(HTML,ASP,JS)
2008/11/13 Javascript
js跟随滚动条滚动浮动代码
2009/12/31 Javascript
js获取当前select 元素值的代码
2010/04/19 Javascript
使用JavaScript进行进制转换将字符串转换为十进制
2014/09/21 Javascript
JS给Textarea文本框添加行号的方法
2015/08/20 Javascript
WebGL利用FBO完成立方体贴图效果完整实例(附demo源码下载)
2016/01/26 Javascript
js 定义对象数组(结合)多维数组方法
2016/07/27 Javascript
jQuery学习笔记之入门
2016/12/14 Javascript
jquery 实时监听输入框值变化的完美方法(必看)
2017/01/26 Javascript
React学习笔记之高阶组件应用
2018/06/02 Javascript
vue axios请求频繁时取消上一次请求的方法
2018/11/10 Javascript
微信小程序时间控件picker view使用详解
2018/12/28 Javascript
如何利用vue+vue-router+elementUI实现简易通讯录
2019/05/13 Javascript
JS+DIV实现拖动效果
2020/02/11 Javascript
Python 冒泡,选择,插入排序使用实例
2015/02/05 Python
Python通过poll实现异步IO的方法
2015/06/04 Python
pandas按若干个列的组合条件筛选数据的方法
2018/04/11 Python
Python3.4 tkinter,PIL图片转换
2018/06/21 Python
ubuntu 16.04下python版本切换的方法
2019/06/14 Python
python实现两个dict合并与计算操作示例
2019/07/01 Python
Python学习笔记之文件的读写操作实例分析
2019/08/07 Python
Python self用法详解
2020/11/28 Python
详解Python中string模块除去Str还剩下什么
2020/11/30 Python
印度在线杂货店:bigbasket
2018/08/23 全球购物
幼儿园元旦活动感言
2014/03/02 职场文书
节能环保标语
2014/06/12 职场文书
2014年秋季开学典礼致辞
2014/08/02 职场文书
家庭财产分割协议范文
2014/11/24 职场文书
2014年行政后勤工作总结
2014/12/06 职场文书
学校德育工作总结2015
2015/05/11 职场文书
出纳试用期工作总结2015
2015/05/28 职场文书
2015新教师教学工作总结
2015/07/22 职场文书
九年级化学教学反思
2016/02/22 职场文书
小学生作文之《压岁钱的烦恼》
2019/09/27 职场文书
详解JS ES6编码规范
2021/05/07 Javascript