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
PHP函数篇详解十进制、二进制、八进制和十六进制转换函数说明
Dec 05 PHP
php加密解密实用类分享
Jan 07 PHP
解决php的“It is not safe to rely on the system’s timezone settings”问题
Oct 08 PHP
php实现微信公众号主动推送消息
Dec 31 PHP
PHP+jquery+CSS制作头像登录窗(仿QQ登陆)
Oct 20 PHP
[原创]php集成安装包wampserver修改密码后phpmyadmin无法登陆的解决方法
Nov 23 PHP
thinkphp分页集成实例
Jul 24 PHP
PHP实现打包下载文件的方法示例
Oct 07 PHP
PHP注释语法规范与命名规范详解篇
Jan 21 PHP
PHP设计模式之装饰器模式实例详解
Feb 07 PHP
PHP面向对象程序设计中的self、static、parent关键字用法分析
Aug 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
有关phpmailer的详细介绍及使用方法
2013/01/28 PHP
wordpress自定义标签云与随机获取标签的方法详解
2019/03/22 PHP
起点页面传值js,有空研究学习下
2010/01/25 Javascript
JavaScript访问样式表代码
2010/10/15 Javascript
基于jQuery实现模拟页面加载进度条
2013/04/01 Javascript
js显示文本框提示文字的方法
2015/05/07 Javascript
简单的JS时钟实例讲解
2016/01/13 Javascript
AngularJS实现的回到顶部指令功能实例
2017/05/17 Javascript
JS设计模式之单例模式(一)
2017/09/29 Javascript
Vue下滚动到页面底部无限加载数据的示例代码
2018/04/22 Javascript
express中static中间件的具体使用方法
2019/10/17 Javascript
javascript实现移动端红包雨页面
2020/06/23 Javascript
微信小程序实现滚动Tab选项卡
2020/11/16 Javascript
[52:14]VG vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
简单的抓取淘宝图片的Python爬虫
2014/12/25 Python
在Python中操作列表之list.extend()方法的使用
2015/05/20 Python
python实现数值积分的Simpson方法实例分析
2015/06/05 Python
Python实现利用最大公约数求三个正整数的最小公倍数示例
2017/09/30 Python
基于Python中capitalize()与title()的区别详解
2017/12/09 Python
Python简单实现socket信息发送与监听功能示例
2018/01/03 Python
python获取交互式ssh shell的方法
2019/02/14 Python
不归路系列:Python入门之旅-一定要注意缩进!!!(推荐)
2019/04/16 Python
python的mysql数据库建立表与插入数据操作示例
2019/09/30 Python
django API 中接口的互相调用实例
2020/04/01 Python
Python %r和%s区别代码实例解析
2020/04/03 Python
Python转换字典成为对象,可以用"."方式访问对象属性实例
2020/05/11 Python
利用python控制Autocad:pyautocad方式
2020/06/01 Python
如何将Pycharm中调整字体大小的方式设置为"ctrl+鼠标滚轮上下滑"
2020/11/17 Python
老生常谈CSS中的长度单位
2016/06/27 HTML / CSS
Petmate品牌官方网站:宠物用品
2018/11/25 全球购物
MaBelle玛贝尔香港官网:香港钻饰连锁店
2019/09/09 全球购物
体育教师自荐信范文
2013/12/16 职场文书
心理咨询专业自荐信
2014/07/07 职场文书
2014标准社保办理委托书
2014/10/06 职场文书
2014年教师教学工作总结
2014/11/08 职场文书
用Python提取PDF表格的方法
2021/04/11 Python