アプリケーションの開発プロセスでは、IDE でサポートされているリアルタイム デバッグ (VS.PHP や IDE でサポートされているデバッグ機能など) に加えて、Web アプリケーションに適切なデバッグ情報を追加することも非常に重要です。これは、Java または .Net アプリケーションを開発したことがある人なら誰でも、log4XX に精通しているので、Yii Framework には、CWebApplication の組み込みコンポーネントとして表示される、同様の Log 関数 Yii::log も用意されています。これは設定ファイルを通じて設定できます (Yii の設定は通常 protected/config/main.php です)。
前回の記事「Yii フレームワーク開発の簡潔なチュートリアル (2) Yii Web アプリケーションの基礎」では、アプリケーションのコンポーネントについて簡単に説明しました。
Log コンポーネントに加えて、Yii は一般的な Web アプリケーションで使用される機能を提供する一連のコアアプリケーションコンポーネントを事前定義しています。たとえば、リクエスト コンポーネントは、ユーザー リクエストを解析し、URL や Cookie などの情報を提供するために使用されます。 これらのコアコンポーネントのプロパティを設定することで、ほぼあらゆる面で Yii のデフォルトの動作を変更できます。
以下に、CWebApplication によって事前定義されたコア コンポーネントをリストします。
assetManager: CAssetManager - プライベートアセットファイルのリリースを管理します。
authManager: CAuthManager - ロールベースのアクセス制御 (RBAC) を管理します。
cache: CCache - データキャッシュ機能を提供します。実際のクラス (CMemCache、CDbCache など) を指定する必要があることに注意してください。 それ以外の場合、このコンポーネントにアクセスすると NULL が返されます。
clientScript: CClientScript - クライアント側スクリプト (JavaScript および CSS) を管理します。
coreMessages: CPhpMessageSource - Yii フレームワークによって使用されるコアメッセージの翻訳を提供します。
db: CDbConnection - データベース接続を提供します。このコンポーネントを使用するには、その connectionString プロパティを設定する必要があることに注意してください。
errorHandler: CErrorHandler - 捕捉されなかった PHP エラーと例外を処理します。
format: CFormatter - フォーマットされた数値表示。この機能はバージョン 1.1.0 以降で利用可能です。
messages: CPhpMessageSource - Yii アプリケーションで使用されるメッセージ翻訳を提供します。
request: CHttpRequest - ユーザーのリクエストに関する情報を提供します。
securityManager: CSecurityManager - ハッシュ、暗号化などのセキュリティ関連サービスを提供します。
session: CHttpSession - セッション関連の機能を提供します。
statePersister: CStatePersister - グローバル状態永続メソッドを提供します。
urlManager: CUrlManager - URL 解析および作成関連機能を提供します。
user: CWebUser - 現在のユーザーの識別情報を提供します。
themeManager: CThemeManager - テーマを管理します。これらのコンポーネントは、後続のチュートリアルで段階的に紹介されます。 Log 関数の基本的な使用方法を以下に示します。 ここでは、Yii フレームワーク開発の簡潔なチュートリアル (1) を変更します。 最初のアプリケーションは Hello World です。それにログを追加します。 1. 設定ファイル protected/config/main.php を作成します。ログをファイルに書き込みたい場合は、次の設定を使用できます: Yii::log または Yii::trace を通じて記録された情報。のメモリに保存されます。 通常、それらをブラウザ ウィンドウに表示するか、ファイルや電子メールなどの永続ストレージに保存する必要があります。これを情報ルーティングと呼びます。
通常、Log 機能を使用する場合は、プリロードによって設定された Log コンポーネントをプリロードする必要があります。 ヒント: デフォルトでは、アプリケーション コンポーネントは必要に応じて作成されます。これは、コンポーネントがアクセスされた場合にのみ作成されることを意味します。 したがって、多くのコンポーネントの構成によってシステム全体のパフォーマンスが低下することはありません。一部のアプリケーション コンポーネント (CLogRouter など) は、使用されるかどうかに関係なく作成されます。この場合、アプリケーションの構成ファイル preload にこれらのコンポーネントの ID をリストします。
2. エントリスクリプトindex.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',), ),),), );
ログファイルが書き込まれるデフォルトのディレクトリは protected/runtime であるため、事前に runtime ディレクトリを作成する必要があります。そうしないと、Yii は Web ページにログを直接表示します。
4. このように、Yii::log または Yii::trace を使用してアプリケーションにログを追加できます。
違いは、後者はアプリケーションがデバッグ モードで実行されているときにのみ情報を記録することです。
$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
情報を記録するときは、そのカテゴリとレベルを指定する必要があります。カテゴリは、パスのエイリアスに似た形式の文字列です。 たとえば、メッセージが CController に記録されている場合、分類として system.web.CController を使用できます。情報レベルは次の値のいずれかである必要があります:
trace: これは Yii::trace で使用されるレベルです。開発中にプログラムの実行フローを追跡するために使用されます。
info: これは一般的な情報を記録するために使用されます。
profile: 公演概要(プロフィール)です。詳細な手順は後ほど説明します。
warning: これは警告メッセージに使用されます。
error: これは致命的なエラー メッセージに使用されます。
Yii のログはレベルとカテゴリによって分類およびフィルタリングされます。前述したように、複数のレベルまたはカテゴリはカンマで接続する必要があります。
由于 信息分类是类似 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等)这些多可以通过配置 来实现,具体可以参见日志记录。
以上就是PHP开发框架Yii Framework教程(3) 为应用添加日志的内容,更多相关内容请关注PHP中文网(www.php.cn)!