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 相关文章推荐
PHP4.04简明安装
Oct 09 PHP
常用的PHP数据库操作方法(MYSQL版)
Jun 08 PHP
php file_get_contents抓取Gzip网页乱码的三种解决方法
Nov 12 PHP
php过滤敏感词的示例
Mar 31 PHP
codeigniter中实现一次性加载多个view的方法
Mar 20 PHP
PHP文件读取功能的应用实例
May 08 PHP
为你总结一些php系统类函数
Oct 21 PHP
详解PHP的Yii框架中日志的相关配置及使用
Dec 08 PHP
php无法连接mysql数据库的正确解决方法
Jul 01 PHP
php实现的三个常用加密解密功能函数示例
Nov 06 PHP
thinkPHP框架中layer.js的封装与使用方法示例
Jan 18 PHP
PHP设计模式之外观模式(Facade)入门与应用详解
Dec 13 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函数解决SQL injection
2006/10/09 PHP
php中拷贝构造函数、赋值运算符重载
2012/07/25 PHP
php使用base64加密解密图片示例分享
2014/01/20 PHP
PHP捕获Fatal error错误的方法
2014/06/11 PHP
PHP中类属性与类静态变量的访问方法示例
2016/07/13 PHP
Highslide.js是一款基于js实现的网页中图片展示插件
2020/03/30 Javascript
JQuery判断子iframe何时加载完成解决方案
2013/08/20 Javascript
jQuery实现瀑布流布局
2014/12/12 Javascript
JQuery基础语法小结
2015/02/27 Javascript
jQuery实现自动与手动切换的滚动新闻特效代码分享
2015/08/27 Javascript
JS实现仿QQ面板的手风琴效果折叠菜单代码
2015/09/11 Javascript
jQuery实现简单的网页换肤效果示例
2016/09/18 Javascript
浅谈Nodejs中的作用域问题
2016/12/26 NodeJs
EasyUI学习之Combobox级联下拉列表(2)
2016/12/29 Javascript
Bootstrap的popover(弹出框)2秒后定时消失的实现代码
2017/02/27 Javascript
利用JavaScript在网页实现八数码启发式A*算法动画效果
2017/04/16 Javascript
Angular之jwt令牌身份验证的实现
2020/02/14 Javascript
JQuery省市联动效果实现过程详解
2020/05/08 jQuery
解决idea开发遇到javascript动态添加html元素时中文乱码的问题
2020/09/29 Javascript
[00:35]TI7不朽珍藏III——寒冰飞龙不朽展示
2017/07/15 DOTA
win7安装python生成随机数代码分享
2013/12/27 Python
使用Python实现正态分布、正态分布采样
2019/11/20 Python
Tensorflow:转置函数 transpose的使用详解
2020/02/11 Python
Python单例模式的四种创建方式实例解析
2020/03/04 Python
基于python实现数组格式参数加密计算
2020/04/21 Python
IFCHIC台湾:欧美国际设计师品牌
2019/05/18 全球购物
项目经理的岗位职责
2013/11/23 职场文书
社区敬老月活动实施方案
2014/02/17 职场文书
结婚喜宴主持词
2014/03/14 职场文书
群教班子对照检查材料
2014/08/26 职场文书
2015年毕业生个人自荐书
2015/03/24 职场文书
python 逐步回归算法
2021/04/06 Python
MySQL 分页查询的优化技巧
2021/05/12 MySQL
MySQL 可扩展设计的基本原则
2021/05/14 MySQL
JavaScript流程控制(循环)
2021/12/06 Javascript
MySQL慢查询优化解决问题
2022/03/17 MySQL