程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> PHP開發框架Yii Framework教程(3) 為應用添加日志

PHP開發框架Yii Framework教程(3) 為應用添加日志

編輯:PHP綜合

在開發應用的過程中,調試也是非常重要的一個環節,除了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);

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved