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中处理模拟rewrite 效果
Dec 09 PHP
Pain 全世界最小最简单的PHP模板引擎 (普通版)
Oct 23 PHP
解析php如何将日志写进syslog
Jun 28 PHP
PHP自动识别字符集并完成转码详解
Aug 02 PHP
phpstorm配置Xdebug进行调试PHP教程
Dec 01 PHP
PHP CURL或file_get_contents获取网页标题的代码及两者效率的稳定性问题
Nov 30 PHP
PHP共享内存用法实例分析
Feb 12 PHP
Yii使用migrate命令执行sql语句的方法
Mar 15 PHP
php简单统计在线人数的方法
May 10 PHP
Yii实现文章列表置顶功能示例
Oct 18 PHP
利用laravel搭建一个迷你博客实战教程
Aug 13 PHP
laravel框架创建授权策略实例分析
Nov 22 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生成固定长度纯数字编码的方法
2015/07/09 PHP
CakePHP框架Model关联对象用法分析
2017/08/04 PHP
6个DIV 135或246间隔一秒轮番显示效果
2010/07/24 Javascript
js 窗口抖动示例
2013/09/04 Javascript
javascript ajax 仿百度分页函数
2013/10/29 Javascript
玩转方法:call和apply
2014/05/08 Javascript
jQuery原型属性和原型方法详解
2015/07/07 Javascript
JS实现iframe自适应高度的方法(兼容IE与FireFox)
2016/06/24 Javascript
AngularJS 指令详细介绍
2016/07/27 Javascript
jQuery实现图片轮播效果代码
2016/09/27 Javascript
JavaScript重定向URL参数的两种方法小结
2016/10/19 Javascript
JavaScript中清空数组的三种方式
2017/03/22 Javascript
AngularJS 异步解决实现方法
2017/06/12 Javascript
解决Mac下安装nmp的淘宝镜像失败问题
2018/05/16 Javascript
vue动态注册组件实例代码详解
2019/05/30 Javascript
VsCode里的Vue模板的实现
2020/08/12 Javascript
JS中队列和双端队列实现及应用详解
2020/09/29 Javascript
python简单程序读取串口信息的方法
2015/03/13 Python
Python入门之三角函数sin()函数实例详解
2017/11/08 Python
python实现自动发送报警监控邮件
2018/06/21 Python
详解PyCharm安装MicroPython插件的教程
2019/06/24 Python
python django下载大的csv文件实现方法分析
2019/07/19 Python
详解使用django-mama-cas快速搭建CAS服务的实现
2019/10/30 Python
django xadmin中form_layout添加字段显示方式
2020/03/30 Python
jupyter notebook 多行输出实例
2020/04/09 Python
python对批量WAV音频进行等长分割的方法实现
2020/09/25 Python
matplotlib之pyplot模块坐标轴标签设置使用(xlabel()、ylabel())
2021/02/22 Python
LightInTheBox西班牙站点:全球商品在线采购
2016/09/22 全球购物
如果一个类实现了多个接口但是这些接口有相同的方法名将会怎样
2013/06/16 面试题
咖啡店的创业计划书,让你hold不住
2014/01/03 职场文书
总经理助理工作职责
2014/02/06 职场文书
公司节能减排方案
2014/05/16 职场文书
世界卫生日宣传活动总结
2015/02/09 职场文书
环卫工作个人总结
2015/03/04 职场文书
安全生产奖惩制度
2015/08/06 职场文书
基于PyQt5制作一个群发邮件工具
2022/04/08 Python