MongoLog クラス

(PECL mongo >=1.2.3)

はじめに

ログ機能を使うと、ドライバが何をしているのかに関する詳細な情報を取得できます。 ログ機能はデフォルトでは無効になっています。しかし、このクラスを使うと、 ドライバの特定の部分について指定したレベルでのログ出力を有効にできます。 たとえば次のように使います。

<?php

// すべてのログ出力を有効にします
MongoLog::setLevel(MongoLog::ALL); // すべてのログレベル
MongoLog::setModule(MongoLog::ALL); // ドライバのすべての部分

// レプリカセットのフェイルオーバーに関する重大なイベントを表示します
MongoLog::setLevel(MongoLog::INFO);
MongoLog::setModule(MongoLog::RS);

// レプリカセットと接続に関する info および diagnostic レベルのイベントを表示します
MongoLog::setLevel(MongoLog::INFO|MongoLog::FINE);
MongoLog::setModule(MongoLog::RS|MongoLog::CON);

?>

注意:

デフォルトでは、MongoLog はすべてのログメッセージを PHP の notice として発行します。 利用する SAPI によって、 このメッセージが stderr に送られる (CLI の場合) こともあれば、ウェブサーバーのエラーログに書き出されることもあります、 MongoLog を設定したのにログメッセージが期待通りに出力されない場合は、 error_reporting の設定に E_NOTICE が含まれているかどうかと、 display_errors が on になっているかどうかを確認しましょう。

クラス概要

MongoLog {
/* 定数 */
const int NONE = 0 ;
const int ALL = 31 ;
レベル定数 {
const int WARNING = 1 ;
const int INFO = 2 ;
const int FINE = 4 ;
モジュール定数 {
const int RS = 1 ;
const int POOL = 1 ;
const int CON = 2 ;
const int IO = 4 ;
const int SERVER = 8 ;
const int PARSE = 16 ;
/* フィールド */
private static int $callback ;
private static int $level ;
private static int $module ;
/* メソッド */
public static getCallback ( void ) : callable
public static getLevel ( void ) : int
public static getModule ( void ) : int
public static setCallback ( callable $log_function ) : void
public static setLevel ( int $level ) : void
public static setModule ( int $module ) : void
}

定義済み定数

MongoLog 定数

これらの定数は MongoLog::setLevel() および MongoLog::setModule() の両方で使えます。

MongoLog::NONE
ログ出力を無効にする。
MongoLog::ALL
すべてをログ出力する。

MongoLog レベル定数

これらの定数は MongoLog::setLevel() で使えます。

MongoLog::WARNING
これは、何かおかしいけれども例外を発生させるほどではないできごと (復旧可能な接続エラーなど) を記録します。
MongoLog::INFO
管理者にとっては有用だと思われるが 特に注目には値しないできごと (オプションのパース、認証処理など) を記録します。
MongoLog::FINE
ドライバの動作における大半のできごと (サーバーの選択やソケット通信など) を記録します。記録対象のモジュールにもよりますが、 ログがノイズまみれになる可能性もあります。主な用途はデバッグです。

MongoLog モジュール定数

これらの定数は MongoLog::setModule() で使えます。

MongoLog::CON
接続のアクティビティを記録します。 新規接続の作成、認証、ping、タイムアウトなどです。
MongoLog::IO
データベースとのトラフィックを記録します。 ちょっとした小物プログラムでない限り、 これを有効にすると大量のログメッセージが記録されます。
MongoLog::PARSE
MongoClient を作成するときの、 接続文字列やオプションのパースを記録します。
MongoLog::POOL
かつては接続プールの活動を記録していました。今は非推奨で、 MongoLog::RS のエイリアスとなっています。
MongoLog::RS
レプリカセットの活動を記録します。フェイルオーバーや、 優先読み込みの選択などです。
MongoLog::SERVER
かつてはサーバーの状態の変更を記録していました。今は非推奨で、 MongoLog::RS のエイリアスとなっています。

変更履歴

バージョン 説明
1.3.0 MongoLog::CON が追加され、 MongoLog::POOLMongoLog::SERVER が非推奨になりました。

目次