在开发应用的过程中,调试也是非常重要的一个环节,除了IDE支持的即时调试(如VS.PHP或IDE支持的调试功能),给Web应用添加适当的调试信息也是非常有用的一个方法,开发过Java或.Net 应用的对log4XX都不陌生,Yii Framework中也提供了类似的Log功能,Yii::log,它是作为CWebApplication一个内置的组件出现的。可以通过配置文件来配置(Yii中配置通常为protected/config/main.php)。
上篇文章Yii Framework 开发简明教程(2) Yii Web应用基础简述了应用组件。
除Log组件外,Yii 预定义了一系列核心应用组件,提供常见 Web 应用中所用的功能。例如,request组件用于解析用户请求并提供例如 URL,cookie 等信息。 通过配置这些核心组件的属性,我们可以在几乎所有的方面修改Yii 的默认行为。
下面我们列出了由CWebApplication预定义的核心组件。
-
assetManager:CAssetManager- 管理私有资源文件的发布。
-
authManager:CAuthManager- 管理基于角色的访问控制 (RBAC).
-
cache:CCache- 提供数据缓存功能。注意,你必须指定实际的类(例如CMemCache,CDbCache)。 否则,当你访问此组件时将返回 NULL。
-
clientScript:CClientScript- 管理客户端脚本 (javascripts 和 CSS).
-
coreMessages:CPhpMessageSource- 提供 Yii 框架用到的核心信息的翻译。
-
db:CDbConnection- 提供数据库连接。注意,使用此组件你必须配置其connectionString属性。
-
errorHandler:CErrorHandler- 处理未捕获的 PHP 错误和异常。
-
format:CFormatter- 格式化数值显示。此功能从版本 1.1.0 起开始提供。
-
messages:CPhpMessageSource- 提供Yii应用中使用的信息翻译。
-
request:CHttpRequest- 提供关于用户请求的信息。
-
securityManager:CSecurityManager- 提供安全相关的服务,例如散列,加密。
-
session:CHttpSession- 提供session相关的功能。
-
statePersister:CStatePersister- 提供全局状态持久方法。
-
urlManager:CUrlManager- 提供 URL 解析和创建相关功能
-
user:CWebUser- 提供当前用户的识别信息。
-
themeManager:CThemeManager- 管理主题。这些组件在后面的教程中将逐步介绍。下面给出Log功能使用的基本方法:这里我们修改Yii Framework 开发简明教程(1) 第一个应用Hello World。为其添加日志。
1. 创建配置文件protected/config/main.php
希望将日志写到一个文件中,可以使用如下配置:
<?php
// This is the main Web application configuration. Any writable
// CWebApplication properties can be configured here.
return array(
// preloading 'log' component
'preload'=>array('log'),
// application components
'components'=>array(
'log'=>array(
'class'=>'CLogRouter',
'routes'=>array(
array(
'class'=>'CFileLogRoute',
'levels'=>'info,error, warning',
),
),
),
),
);
CLogRouter 信息路由 通过 Yii::log 或 Yii::trace 记录的信息是保存在内存中的。 我们通常需要将它们显示到浏览器窗口中,或者将他们保存到一些 持久存储例如文件、Email中。这个就叫作 信息路由。
一般使用Log功能时,需要预先载入Log组件,这是通过preload来配置的,preload 允许应用事先载入一些模块.提示: 默认情况下,应用元件是根据需要而创建的。这意味着一个元件只有在被访问的情况下才会创建。 因此,系统的整体性能不会因为配置了很多元件而下降。有些应用元件,(比如CLogRouter) 是不管用不用都要创建的。在这种情况下, 我们在应用的配置文件里将这些元件的ID列上:preload。
2. 修改入口脚本index.php ,配置主应用实例使用新创建的配置文件。
$yii='C:/yiiframework/yii.php';
// remove the following line when in production mode
defined('YII_DEBUG') or define('YII_DEBUG',true);
$config=dirname(__FILE__).'/protected/config/main.php';
require_once($yii);
Yii::createWebApplication($config)->run();
-
3. 创建protected/runtime
因为日志文件写入的缺省目录为protected/runtime 所以事先要创建好runtime 目录,否则Yii 将日志直接显示在网页上。
4. 这样就可以使用 Yii::log 或 Yii::trace 为应用添加日志。
其 区别是后者只在当应用程序运行在调试模式(debug mode)中时才会记录信息。
Yii::log($message, $level, $category);
Yii::trace($message, $category);
当记录信息时,我们需要指定它的分类和级别 分类是一段格式类似于路径别名的字符串。 例如,如果一条信息是在CController中记录的,我们可以使用system.web.CController
作为分类。信息级别应该是下列值中的一种:
-
trace
: 这是在Yii::trace中使用的级别。它用于在开发中 跟踪程序的执行流程。
-
info
: 这个用于记录普通的信息。
-
profile
: 这个是性能概述(profile)。下面马上会有更详细的说明。
-
warning
: 这个用于警告(warning)信息。
-
error
: 这个用于致命错误(fatal error)信息。
Yii 的日志通过Level和Category进行分类和过滤,正如我们所提到的, 多个级别或分类应使用逗号连接。
由于信息分类是类似 xxx.yyy.zzz 格式的,我们可以将其视为一个分类层级。 具体地,我们说 xxx 是 xxx.yyy 的父级,而xxx.yyy 又是 xxx.yyy.zzz 的父级。 这样我们就可以使用 xxx.* 表示分类 xxx 及其所有的子级和孙级分类。
有了以上知识,我们修改SiteController的actionIndex,添加一行日志。
public function actionIndex()
{
Yii::log("action","info","site.action");
$this->render("index");
}
5. 运行应用,可以看到Yii在protected/runtime 创建了一个application.log
其内容如下:
2012/12/11 21:23:38 [info] [site.action] action
注: 日志存放的位置和文件名都可以通过配置来修改,一般情况使用缺省值就可以了,和log4X 类似,应用的日志可以通过路由同时写到多个目的地(文件,Email等)这些多可以通过配置来实现,具体可以参见日志记录。
最后刚发现在CSDN的博客被提名到”2012CSDN博客之星“。
希望喜欢本博客的朋友投我一票, 谢谢: http://vote.blog.csdn.net/item/blogstar/mapdigit
分享到:
相关推荐
Yii Framework API手册 英文原版
yii framework框架 + yii app模板(基本、高级)
从 MVC,DAO/ActiveRecord,widgets,caching,等级式RBAC,Web服务,到主题化,I18N和L10N,Yii提供了今日Web 2.0应用开发所需要的几乎一切功能。事实上,Yii是最有效率的PHP框架之一。 Yii是一个高性能的PHP5的...
Yii Framework 1.1.6 框架
yii framework 中文完全手册
Yii Framework是一个高性能的PHP5的web应用程序开发框架。通过一个简单的命令行工具 yiic 可以快速创建一个web应用程序的代码框架,开发者可以在生成的代码框架基础上添加业务逻辑,以快速完成应用程序的开发。
Yii是一个高性能的PHP5的web应用程序开发框架。通过一个简单的命令行工具 yiic 可以快速创建一个web应用程序的代码框架,开发者可以在生成的代码框架基础上添加业务逻辑,以快速完成应用程序的开发。
yii framework 1.1.14 chm文档,从官方html文档编译,展示效果很好.
PhpStorm6 创建yii framework项目全过程。
YiiFramework 最新最完善的YII框架
Yii Framework 1.10的API手册
通过一个简单的命令行工具 yiic 可以快速创建一个web应用程序的代码框架,开发者可以在生成的代码框架基础上添加业务逻辑,以快速完成应用程序的开发。 Yii Framework页面截图展示 相关阅读 同类...
教程名称:Yii2.0 打造京东商城平台 PHP电商实战 Yii2.0视频教程 教程内容: 包含了电商的所有功能模块:商品展示、购物车功能、下单支付、发货、确认收获、商品管理、订单管理。电商API接口开发。Yii2.0级基于Yii...
PHP实例开发源码—Yii Framework php框架.zip PHP实例开发源码—Yii Framework php框架.zip PHP实例开发源码—Yii Framework php框架.zip
Yii PHP Framework实用入门教程
yii framework 最全最新的中文手册
Yii提供了今日Web 2.0应用开发所需要的几乎一切功能。Yii是最有效率的PHP框架之一。 Yii几乎拥有了当今Web 2.0应用发展的全部特性。下面是这些特性的一个简短的清单。 1、模型-视图-控制器(MVC)设计模式:Yii在...
Yii是一个高性能的PHP5的web应用程序开发框架。通过一个简单的命令行工具 yiic 可以快速创建一个web应用程序的代码框架,开发者可以在生成的代码框架基础上添加业务逻辑,以快速完成应用程序的开发。
主要介绍了YII Framework框架教程之日志用法,结合实例形式详细分析了Yii框架日志的配置,使用方法及相关注意事项,需要的朋友可以参考下