Yii 日志与调试 debugtoolbar

本文介绍了Yii框架中的日志记录方法及调试技巧,包括如何配置日志级别、分类及路由,利用Yii提供的log和trace函数输出不同类型的日志信息,并展示了如何启用调试模式和使用调试插件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

系统自带调试

index.php开启调试模式

// remove the following lines when in production mode
defined('YII_DEBUG') or define('YII_DEBUG',true);
// specify how many levels of call stack should be shown in each log message
defined('YII_TRACE_LEVEL') or define('YII_TRACE_LEVEL',3);
//app use time
//defined('YII_BEGIN_TIME') or define('YII_BEGIN_TIME',microtime(true));

YII_TRACE_LEVEL的数字越大,信息越清楚 

日志配置

通常在应用的配置文件(如 protected/config/main.php)中进行配置。以下是一个典型的配置示例

'components' => array(
    'log' => array(
        'class' => 'CLogRouter',
        'routes' => array(
            array(
                'class' => 'CFileLogRoute',
                'levels' => 'error, warning', // 指定要记录的日志级别
                'categories' => 'system.*',   // 指定要记录的日志类别
                'logFile' => 'application.log', // 自定义日志文件名
            ),
            // 下面显示页面日志
            array(
                'class' => 'CWebLogRoute',
                'levels' => 'trace',     //级别为trace
                'categories' => 'system.db.*' //只显示关于数据库信息,包括数据库连接,数据库执行语句
            ),
        ),
    ),
),

配置项说明:

  • levels: 指定要记录的日志级别,例如 error, warning, info, trace 等。
  • categories: 指定要记录的日志类别,可以是通配符形式,例如 system.* 表示记录所有以 system. 开头的日志。
  • logFile: 自定义日志文件名,默认为 application.log,位于 protected/runtime/ 目录下

Yii 提供了一个灵活可扩展的日志功能。记录的日志可以通过日志级别和信息分类进行归类。通过使用级别和分类过滤器,所选的信息还可以进一步路由到不同的目的地,例如一个文件,Email,浏览器窗口等。

 在Yii 中有下列几种日志路由可用:

  • CDbLogRoute: 将信息保存到数据库的表中。
  • CEmailLogRoute: 发送信息到指定的 Email 地址。
  • CFileLogRoute: 保存信息到应用程序 runtime 目录中的一个文件中。
  • CWebLogRoute: 将 信息 显示在当前页面的底部。
  • CProfileLogRoute: 在页面的底部显示概述(profiling)信息。

使用日志功能

可以通过YII提供的Yii::log和Yii::trace进行日志信息的输出,两者的区别看看定义就知道了。
函数定义

Yii::log('This is an error message.', CLogger::LEVEL_ERROR, 'application');
Yii::log('This is a warning message.', CLogger::LEVEL_WARNING, 'application');

Yii::trace($message, $category);

$msg:你要输出的日志信息
$category:日志信息所属分类
$level:日志信息的级别:

const LEVEL_TRACE='trace';用于调试环境,追踪程序执行流程
const LEVEL_WARNING='warning';警告信息
const LEVEL_ERROR='error';致命错误信息
const LEVEL_INFO='info';普通提示信息
const LEVEL_PROFILE='profile';性能调试信息

YII::log基本使用例子

<?php
 class DefaultController extends Controller
 {
     public function actionCache ()
     {
         $category='system.testmod.defaultController';
         $level=CLogger::LEVEL_INFO;
         $msg='action begin ';
         Yii::log($msg,$level,$category);

根据不同功能模块定制log日志

array(
    'components' => array(
        'log' => array(
            'class' => 'CLogRouter',
            'routes' => array(
                array( //数据库日志记录到db.log中
                    'class' => 'CFileLogRoute',
                    'categories' => 'db.*',
                    'logFile' => 'db.log',
                ),
                array( //所有错误日志记录到error.log中
                    'class' => 'CFileLogRoute',
                    'levels' => 'error',
                    'logFile' => 'error.log',
                ),
                array( //所有用户中心错误日志发邮件
                    'class' => 'CEmailLogRoute',
                    'categories' => 'uc.*',
                    'levels' => 'error',
                    'emails' => 'admin@example.com',
                ),
                array( //开发过程中所有日志直接页面打印,这样不需要登录服务器看日志了
                    'class' => 'CWebLogRoute',
                    'levels' => 'trace,info,profile,warning,error',
                ),
            ),
        ),
    ),
),

调试插件

debugtoolbar http://www.yiiframework.com/extension/yiidebugtbar

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值