<commit_before>ロギング
=======

Yiiには柔軟で拡張可能なログ機能が備わっています。
記録されたメッセージはログレベルとメッセージカテゴリによって分類可能です。
レベルとカテゴリフィルターを使うことで、特定のメッセージをファイルやメール、
ブラウザといった別の送り先に送信することも可能です。

メッセージをログに記録する
---------------

メッセージは [Yii::log]か[Yii::trace]のどちらかを呼ぶことでログに記録可能です。
この二つのメソッドの違いは、後者はアプリケーションが[デバッグモード](/doc/guide/basics.entry#debug-mode)
で動いているときだけメッセージを記録するということです。

~~~
[php]
Yii::log($message, $level, $category);
Yii::trace($message, $category);
~~~

メッセージをログに記録するとき、カテゴリとレベルを指定する必要があります。
カテゴリは`xxx.yyy.zzz`というフォーマットの文字列です。
これは[パスエイリアス](/doc/guide/basics.namespace)と似ています。
例えば、[CController]でメッセージがログに記録されるとすると、
 `system.web.CController`というカテゴリを使うことができるでしょう。
メッセージレベルは以下の値のいずれかになります。

   - `trace`: [Yii::trace]によって利用されるレベル 開発の間アプリケーションの実行フローをトレースする

   - `info`: 一般的な情報向け

   - `profile`: 後ほど述べるパフォーマンスプロファイルについて

   - `warning`: 警告メッセージ

   - `error`: 致命的なエラーメッセージ

メッセージルーティング
---------------

[Yii::log]か[Yii::trace]によって記録されたメッセージはメモリに一時的に保持されます。
多くの場合、メッセージをブラウザに表示したり、ファイルやメールといった継続的ストレージに保存する必要があります。
これを*メッセージルーティング*と呼びます。つまり、メッセージを異なった送り先に送信するという意味です。

Yiiにおけるメッセージルーティングは、[CLogRouter]アプリケーションコンポーネントによって制御されます。
このコンポーネントは、いわゆる*ログルート*のセットを管理します。
各ログルートは一つの送信先を表します。
メッセージはログルートに沿って送信され、レベルとカテゴリによってフィルタすることが可能です。

メッセージルーティングを使うには、[CLogRouter]アプリケーションコンポーネントをインストールし、
プリロードする必要があります。
また、コンポーネントの[routes|CLogRouter::routes]プロパティに必要なログルートを設定する必要があります。
以下では[アプリケーション初期構成](/doc/guide/basics.application#application-configuration)の例を提示します。

~~~
[php]
array(
	......
	'preload'=>array('log'),
	'components'=>array(
		......
		'log'=>array(
			'class'=>'CLogRouter',
			'routes'=>array(
				array(
					'class'=>'CFileLogRoute',
					'levels'=>'trace, info',
					'categories'=>'system.*',
				),
				array(
					'class'=>'CEmailLogRoute',
					'levels'=>'error, warning',
					'emails'=>'<EMAIL>',
				),
			),
		),
	),
)
~~~

この例では二つのログルートを設定しています。
最初のルートは[CFileLogRoute]で、これはメッセージをランタイムディレクトリ以下のファイルに保存します。
このルートで保存されるのは、レベルが`trace` か `info`で、かつカテゴリが`system.`で始まるものだけです。
二番目のルートは[CEmailLogRoute]で、指定されたメールアドレス宛にメッセージを送信します。
このルートでは、レベルが`error` か `warning` のものだけが送信されます。

Yiiでは以下のログルートが利用可能です。

   - [CDbLogRoute]: メッセージをデータベースに保存する
   - [CEmailLogRoute]: メッセージを指定されたメールアドレスに送信する
   - [CFileLogRoute]: メッセージをアプリケーションのラン多無ディレクトリ以下にファイルとして保存する
   - [CWebLogRoute]: メッセージをウェブページの最後に表示する
   - [CProfileLogRoute]: プロファイルメッセージをウェブページ最後に表示する

> 情報: メッセージルーティングはリクエストサイクルの最後で[onEndRequest|CApplication::onEndRequest] イベントが発生したときに
実行されます。
明示的に現在のリクエストの実行を終了するためには、`die()` や `exit()`ではなく、[CApplication::end()]を読んでください。
なぜなら、[CApplication::end()]は[onEndRequest|CApplication::onEndRequest]を発生させ、メッセージが適切にログに記録されるからです。

メッセージのフィルタリング
-----------------

先ほど述べたように、メッセージをログルートに送信する前に、レベルとカテゴリによってフィルタリング可能です。
これはログルートの[levels|CLogRoute::levels]プロパティと、<commit_msg>[ja][guide]Fixed typo.<commit_after>ロギング
=======

Yiiには柔軟で拡張可能なログ機能が備わっています。
記録されたメッセージはログレベルとメッセージカテゴリによって分類可能です。
レベルとカテゴリフィルターを使うことで、特定のメッセージをファイルやメール、
ブラウザといった別の送り先に送信することも可能です。

メッセージをログに記録する
---------------

メッセージは [Yii::log]か[Yii::trace]のどちらかを呼ぶことでログに記録可能です。
この二つのメソッドの違いは、後者はアプリケーションが[デバッグモード](/doc/guide/basics.entry#debug-mode)
で動いているときだけメッセージを記録するということです。

~~~
[php]
Yii::log($message, $level, $category);
Yii::trace($message, $category);
~~~

メッセージをログに記録するとき、カテゴリとレベルを指定する必要があります。
カテゴリは`xxx.yyy.zzz`というフォーマットの文字列です。
これは[パスエイリアス](/doc/guide/basics.namespace)と似ています。
例えば、[CController]でメッセージがログに記録されるとすると、
 `system.web.CController`というカテゴリを使うことができるでしょう。
メッセージレベルは以下の値のいずれかになります。

   - `trace`: [Yii::trace]によって利用されるレベル 開発の間アプリケーションの実行フローをトレースする

   - `info`: 一般的な情報向け

   - `profile`: 後ほど述べるパフォーマンスプロファイルについて

   - `warning`: 警告メッセージ

   - `error`: 致命的なエラーメッセージ

メッセージルーティング
---------------

[Yii::log]か[Yii::trace]によって記録されたメッセージはメモリに一時的に保持されます。
多くの場合、メッセージをブラウザに表示したり、ファイルやメールといった継続的ストレージに保存する必要があります。
これを*メッセージルーティング*と呼びます。つまり、メッセージを異なった送り先に送信するという意味です。

Yiiにおけるメッセージルーティングは、[CLogRouter]アプリケーションコンポーネントによって制御されます。
このコンポーネントは、いわゆる*ログルート*のセットを管理します。
各ログルートは一つの送信先を表します。
メッセージはログルートに沿って送信され、レベルとカテゴリによってフィルタすることが可能です。

メッセージルーティングを使うには、[CLogRouter]アプリケーションコンポーネントをインストールし、
プリロードする必要があります。
また、コンポーネントの[routes|CLogRouter::routes]プロパティに必要なログルートを設定する必要があります。
以下では[アプリケーション初期構成](/doc/guide/basics.application#application-configuration)の例を提示します。

~~~
[php]
array(
	......
	'preload'=>array('log'),
	'components'=>array(
		......
		'log'=>array(
			'class'=>'CLogRouter',
			'routes'=>array(
				array(
					'class'=>'CFileLogRoute',
					'levels'=>'trace, info',
					'categories'=>'system.*',
				),
				array(
					'class'=>'CEmailLogRoute',
					'levels'=>'error, warning',
					'emails'=>'<EMAIL>',
				),
			),
		),
	),
)
~~~

この例では二つのログルートを設定しています。
最初のルートは[CFileLogRoute]で、これはメッセージをruntimeディレクトリ以下のファイルに保存します。
このルートで保存されるのは、レベルが`trace` か `info`で、かつカテゴリが`system.`で始まるものだけです。
二番目のルートは[CEmailLogRoute]で、指定されたメールアドレス宛にメッセージを送信します。
このルートでは、レベルが`error` か `warning` のものだけが送信されます。

Yiiでは以下のログルートが利用可能です。

   - [CDbLogRoute]: メッセージをデータベースに保存する
   - [CEmailLogRoute]: メッセージを指定されたメールアドレスに送信する
   - [CFileLogRoute]: メッセージをアプリケーションのruntimeディレクトリ以下にファイルとして保存する
   - [CWebLogRoute]: メッセージをウェブページの最後に表示する
   - [CProfileLogRoute]: プロファイルメッセージをウェブページ最後に表示する

> 情報: メッセージルーティングはリクエストサイクルの最後で[onEndRequest|CApplication::onEndRequest] イベントが発生したときに
実行されます。
明示的に現在のリクエストの実行を終了するためには、`die()` や `exit()`ではなく、[CApplication::end()]を読んでください。
なぜなら、[CApplication::end()]は[onEndRequest|CApplication::onEndRequest]を発生させ、メッセージが適切にログに記録されるからです。

メッセージのフィルタリング
-----------------

先ほど述べたように、メッセージをログルートに送信する前に、レベルとカテゴリによってフィルタリング可能です。
これはログルートの[levels|CLogRoute::levels]プロパティと、
{'fraction_non_alphanumeric': 0.15310218978102189, 'fraction_numerical': 0.0, 'mean_word_length': 7.36793893129771, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 29, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '499809', 'n_tokens_mistral': 4024, 'n_tokens_neox': 3599, 'n_words': 188}