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 相关文章推荐
图书管理程序(二)
Oct 09 PHP
配置支持SSI
Nov 25 PHP
兼容firefox,chrome的网页灰度效果
Aug 08 PHP
thinkphp实现面包屑导航(当前位置)例子分享
May 10 PHP
PHP使用GIFEncoder类生成的GIF动态图片验证码
Jul 01 PHP
PHP向socket服务器收发数据的方法
Jan 24 PHP
php HTML无刷新提交表单
Apr 05 PHP
php简单获取复选框值的方法
May 11 PHP
PHP设计模式之迭代器模式
Jun 17 PHP
关于Laravel Route重定向的一个注意点
Jan 16 PHP
php中关于换行的实例写法
Sep 26 PHP
php中加密解密DES类的简单使用方法示例
Mar 26 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
destoon安全设置中需要设置可写权限的目录及文件
2014/06/21 PHP
CentOS下PHP安装Oracle扩展
2015/02/15 PHP
浅析PHP7新功能及语法变化总结
2016/06/17 PHP
PHP读取文件的常见几种方法
2016/11/03 PHP
php图形jpgraph操作实例分析
2017/02/22 PHP
Yii2框架加载css和js文件的方法分析
2019/05/25 PHP
Js动态创建div
2008/09/25 Javascript
jQuery 自动增长的文本输入框实现代码
2010/04/02 Javascript
解决Extjs上传图片无法预览的解决方法
2012/03/22 Javascript
jQuery怎么解析Json字符串(Json格式/Json对象)
2013/08/09 Javascript
浏览器兼容console对象的简要解决方案分享
2013/10/24 Javascript
javascript读取Xml文件做一个二级联动菜单示例
2014/03/17 Javascript
让IE8浏览器支持function.bind()方法
2014/10/16 Javascript
JavaScript判断是否为数字的4种方法及效率比较
2015/04/01 Javascript
深入探讨前端框架react
2015/12/09 Javascript
基于JS实现省市联动效果代码分享
2016/06/06 Javascript
JavaScript实现的冒泡排序法及统计相邻数交换次数示例
2017/04/26 Javascript
Centos6.8下Node.js安装教程
2017/05/12 Javascript
Node.js使用gm拼装sprite图片
2017/07/04 Javascript
微信小程序自定义对话框弹出和隐藏动画
2018/07/19 Javascript
JS解惑之Object中的key是有序的么
2019/05/06 Javascript
python实现监控linux性能及进程消耗性能的方法
2014/07/25 Python
Python实现图片转字符画的示例
2017/08/22 Python
Django在win10下的安装并创建工程
2017/11/20 Python
python使用正则表达式来获取文件名的前缀方法
2018/10/21 Python
在pycharm中使用git版本管理以及同步github的方法
2019/01/16 Python
python dlib人脸识别代码实例
2019/04/04 Python
详解Django模版中加载静态文件配置方法
2019/07/21 Python
Django使用unittest模块进行单元测试过程解析
2019/08/02 Python
python实现数字炸弹游戏
2020/07/17 Python
Django mysqlclient安装和使用详解
2020/09/17 Python
提高python代码运行效率的一些建议
2020/09/29 Python
Python实现图片指定位置加图片水印(附Pyinstaller打包exe)
2021/03/04 Python
世界首屈一指的钓鱼用品商店:TackleDirect
2016/07/26 全球购物
财政局长自荐信范文
2013/12/22 职场文书
电子信息工程自荐信
2014/05/26 职场文书