Yii框架日志管理:从入门到实践

需积分: 0 0 下载量 97 浏览量 更新于2024-09-03 收藏 673KB PDF 举报
"本文主要介绍了Yii框架中的日志操作,包括如何将日志记录到文本文件、指定分类的日志写入特定文件、日志写入浏览器的开发者工具(如Firebug Console)以及如何追踪SQL查询。通过实例展示了Yii::log()函数的使用,并配置了logging组件来定制日志路由和级别。" 在Yii框架中,日志功能是通过logging组件实现的,它可以帮助开发者记录应用运行过程中的重要信息,如错误、警告或调试信息。Yii::log() 是用来记录日志的主要方法,例如 `Yii::log("test");` 会将"test"作为日志信息写入。 配置日志组件通常在配置文件的 `component->log` 部分进行。例如: ```php 'log'=>array( 'class'=>'CLogRouter', 'routes'=>array( array( 'class'=>'CFileLogRoute', 'levels'=>'warning,error,info', ), ), ), ``` 这段代码定义了一个CFileLogRoute类的日志路由,它会记录级别为`warning`、`error`和`info`的日志到默认的文件中。 如果要将特定分类的日志写入指定文件,可以这样做: ```php 'log'=>array( 'class'=>'CLogRouter', 'routes'=>array( array( 'class'=>'CFileLogRoute', 'levels'=>'info,trace', 'categories'=>'debug.*', 'logFile'=>date("Y-m-d").'debug.log', ), ), ), ``` 这里,`categories'=>'debug.*'` 表示所有以`debug.`开头的分类日志会被记录,`logFile`指定了日志文件名。 要将日志输出到浏览器的开发者工具,如Firebug Console,可以使用CWebLogRoute: ```php 'log'=>array( 'class'=>'CLogRouter', 'routes'=>array( array( 'class'=>'CWebLogRoute', 'categories'=>'debug', 'levels'=>'info,trace', 'showInFireBug'=>true, ), ), ), ``` 设置`showInFireBug`为true后,`debug`分类的日志信息将在支持Firebug的浏览器中显示。 对于SQL查询的追踪,需要开启数据库连接的参数日志,例如: ```php 'db'=>array( // ... 'enableParamLogging'=>true, ), ``` 然后通过 `$cmd->getText()` 获取并记录SQL语句,如: ```php $cmd=Yii::app()->db->createCommand(); $sql="select id, username from {{users}} limit 5"; $cmd->setText($sql); $rows=$cmd->queryAll(); // 日志配置... ``` 通过这样的配置,开发者可以在日志中查看到执行的SQL语句,有助于调试和性能优化。