Yii フレームワークのロギングシステム: アプリケーションイベントの記録

WBOY
リリース: 2023-06-21 15:42:30
オリジナル
1097 人が閲覧しました

Yii フレームワークには、開発者がデバッグやパフォーマンス分析を実行できるようにアプリケーション イベントを記録できる完全なロギング システムがあります。この記事では、Yii フレームワークのロギング システムの基本的な使用法といくつかの実践的なテクニックを紹介します。

  1. ログコンポーネントの設定

Yii フレームワークはデフォルトでログ保存方法としてファイルを使用し、設定ファイルでログコンポーネントを設定できます。以下は簡単な設定例です:

'log' => [ 'traceLevel' => YII_DEBUG ? 3 : 0, 'targets' => [ [ 'class' => 'yiilogFileTarget', 'levels' => ['error', 'warning'], 'logFile' => '@runtime/logs/app.log', ], ], ],
ログイン後にコピー

このうち、traceLevelは、Yii フレームワークがdebugモードで記録するログ レベルを指します。より多くの情報が記録されます。targetsは、複数のログ ターゲットを構成できる配列です。この例では、errorおよびwarningレベルのログを書き込むターゲットは 1 つだけです@ runtime/logs/app.logファイル。

  1. ログ情報の記録

コード内でログ情報を記録するのは非常に簡単です。Yii フレームワークが提供するショートカット関数を使用できます。例:

Yii::info('This is an info message.'); Yii::warning('This is a warning message.'); Yii::error('This is an error message.');
ログイン後にコピー

Shortcut function 、infowarningerrorは、それぞれログの 3 つのレベルに対応します。状況に応じて使い分けが可能です。

ログを記録するときは、文字列を直接記録するだけでなく、プレースホルダー{}で表される置換可能なデータを使用することもできます。例:

Yii::info('User {username} registered successfully.', ['username' => 'John']);
ログイン後にコピー

この時点で、{username}は「John」に置き換えられます。この利点は、ログ情報がより詳細になり、問題のトラブルシューティングが容易になることです。

  1. コンテキスト情報の使用

Yii フレームワークのロギング システムは、より詳細なログ情報を記録するためのコンテキスト情報の使用をサポートしています。コンテキスト情報には、現在のユーザー情報、リクエストパラメータなどの追加データが含まれます。ログを記録するときに、$contextパラメーターを設定することでコンテキスト情報を追加できます。たとえば、次のようになります。

Yii::warning('Invalid user input', ['category' => 'appcontrollersMyController', 'action' => 'create', 'params' => $_POST]);
ログイン後にコピー

上記のコードでは、3 つのコンテキスト情報を使用します。クラス、リクエストされたメソッド、リクエストパラメータ。これにより、ログの発生場所と特定のリクエスト情報がより明確に理解できるようになります。

  1. フィルタリングと分類

実際のアプリケーションでは、すべてのログ情報を記録する必要がない場合があります。 Yii フレームワークのログ システムは、条件に基づいてログ メッセージをフィルタリングおよび分類できるフィルタリングおよび分類メカニズムを提供します。

設定では、categories属性を設定してログ メッセージを分類できます。例:

'log' => [ 'targets' => [ [ 'class' => 'yiilogFileTarget', 'categories' => ['appcontrollersMyController'], 'logFile' => '@runtime/logs/mycontroller.log', ], ], ],
ログイン後にコピー

上記の設定では、からのメッセージのみをログに記録します。 appcontrollersMyControllerコントローラーのログ情報を取得し、@runtime/logs/mycontroller.logファイルに書き込みます。

分類に加えて、関数を使用してログ メッセージをフィルタリングすることもできます。例:

'log' => [ 'targets' => [ [ 'class' => 'yiilogFileTarget', 'levels' => ['error'], 'logFile' => '@runtime/logs/app.log', 'logVars' => [], 'except' => [ 'yiiwebHttpException:404', ], ], ], ],
ログイン後にコピー

上記の構成では、errorレベルのログ情報のみを記録します。同時に、すべてのコンテキスト情報が無視されます。excel属性を使用して、無視するログ メッセージを指定します。この例では、404 エラー メッセージをすべて無視します。

  1. カスタマイズされたログターゲット

Yii フレームワークのロギングシステムを使用すると、ログメッセージを電子メール、データベース、またはサードパーティのログに送信するなど、ログターゲットをカスタマイズできます。サービスなど。ログ ターゲットをカスタマイズする必要がある場合は、yiilogTargetクラスを継承し、exportメソッドを実装する必要があります。例:

class EmailTarget extends yiilogTarget { public $to; public function export() { foreach ($this->messages as $message) { mail($this->to, $message[0], $message[1]); } } }
ログイン後にコピー

上記のコードでは、カスタム電子メール ターゲットを定義し、exportメソッドを実装します。exportメソッドでは、mail関数を使用して、指定されたメールボックスにログ メッセージを送信します。

実際のアプリケーションでは、さまざまなログ ストレージ要件を満たすために、必要に応じてさまざまなログ ターゲットを作成できます。

概要

Yii フレームワークのロギング システムは、開発者がアプリケーション イベントを追跡してデバッグやパフォーマンス分析を改善するのに役立つ非常に実用的なコンポーネントです。ログ システムを使用する場合は、基本的な構成と使用法に加えて、コンテキスト情報の使用、分類とフィルタリング、ログ ターゲットのカスタマイズなどのいくつかの実践的なヒントを理解する必要があります。ログ システムを深く理解し、柔軟に使用することによってのみ、ログの問題をより適切に解決し、アプリケーションの品質とパフォーマンスを向上させることができます。

以上がYii フレームワークのロギングシステム: アプリケーションイベントの記録の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!