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中动态显示签名和ip原理
Mar 28 PHP
php无限遍历目录示例
Feb 21 PHP
PHP获取网页标题的3种实现方法代码实例
Apr 11 PHP
Yii使用技巧大汇总
Dec 29 PHP
Thinkphp和Bootstrap结合打造个性的分页样式(推荐)
Aug 01 PHP
PHP互换两个变量值的方法(不用第三变量)
Nov 14 PHP
基于Laravel实现的用户动态模块开发
Sep 21 PHP
Laravel中获取路由参数Route Parameters的五种方法示例
Sep 29 PHP
Yii框架函数简单用法分析
Sep 09 PHP
PHP的HTTP客户端Guzzle简单使用方法分析
Oct 30 PHP
php pdo连接数据库操作示例
Nov 18 PHP
Yii redis集合的基本使用教程
Jun 14 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和MySQL保存和输出图片
2006/10/09 PHP
Win9x/ME下Apache+PHP安装配置
2006/10/09 PHP
phpMyAdmin 安装及问题总结
2009/05/28 PHP
thinkphp,onethink和thinkox中验证码不显示的解决方法分析
2016/06/06 PHP
PHP PDO数据库操作预处理与注意事项
2019/03/16 PHP
关于document.cookie的使用javascript
2010/10/29 Javascript
js原生态函数中使用jQuery中的 $(this)无效的解决方法
2011/05/25 Javascript
玩转方法:call和apply
2014/05/08 Javascript
js实现div闪烁原理及实现代码
2014/06/24 Javascript
nodejs中操作mysql数据库示例
2014/12/20 NodeJs
canvas实现动态小球重叠效果
2017/02/06 Javascript
基于Bootstrap的标签页组件及bootstrap-tab使用说明
2017/07/25 Javascript
从setTimeout看js函数执行过程
2017/12/19 Javascript
微信小程序实现弹出菜单
2018/07/19 Javascript
Vue.js点击切换按钮改变内容的实例讲解
2018/08/22 Javascript
[49:21]完美世界DOTA2联赛循环赛 Ink Ice vs LBZS BO2第二场 11.05
2020/11/06 DOTA
一则python3的简单爬虫代码
2014/05/26 Python
在Python中使用Mako模版库的简单教程
2015/04/08 Python
python绘制铅球的运行轨迹代码分享
2017/11/14 Python
Python实现简单生成验证码功能【基于random模块】
2018/02/10 Python
Python 读取图片文件为矩阵和保存矩阵为图片的方法
2018/04/27 Python
Python拼接微信好友头像大图的实现方法
2018/08/01 Python
实例分析python3实现并发访问水平切分表
2018/09/29 Python
Python操作json的方法实例分析
2018/12/06 Python
django rest framework 实现用户登录认证详解
2019/07/29 Python
python 并发编程 非阻塞IO模型原理解析
2019/08/20 Python
Pytorch之view及view_as使用详解
2019/12/31 Python
viagogo意大利票务平台:演唱会、体育比赛、戏剧门票
2018/01/26 全球购物
教师试用期自我鉴定
2014/02/12 职场文书
企业安全生产承诺书
2014/05/22 职场文书
2015年教育实习工作总结
2015/04/24 职场文书
小学英语教学经验交流材料
2015/11/02 职场文书
用python开发一款操作MySQL的小工具
2021/05/12 Python
使用numpy实现矩阵的翻转(flip)与旋转
2021/06/03 Python
mybatis 获取无数据的字段不显示的问题
2021/07/15 Java/Android
nginx.conf配置文件结构小结
2022/04/08 Servers