EC-CUBEで好きな時にログを出力する方法
EC-CUBEをカスタマイズしている際や何かの不具合が起こった時のデバッグ用に変数の内容をログファイルに出力する方法をご紹介します。
GC_Utilsクラス
ログ出力関連の関数は「/data/class/util/GC_Utils.php」に記載されています。
テキスト変数を出力
テキスト変数を出力するには「GC_Utils::gfPrintLog()」を使います。
/*---------------------------------------------------------------------- * [名称] gfPrintLog * [概要] ログファイルに日時、処理ファイル名、メッセージを出力 * [引数] 表示したいメッセージ * [戻値] なし * [依存] なし * [注釈] - *----------------------------------------------------------------------*/ function gfPrintLog($mess, $path = '') { ...(略) }
2つめの$pathを無視すると設定ファイル「/data/mtb_constants_init.php」で定義されている「LOG_REALFILE」の場所(通常は「/data/logs/site.log」)に記録されます。
オブジェクト変数を出力
これは「GC_Utils::gfDebugLog()」として定義されているのですが、先ほどの設定ファイルの定数「DEBUG_MODE」が「true」になっていないと動作しないので、利用したい人は変更しておきましょう。
/** * ログファイルに変数の詳細を出力 * * @param mixed $obj * @return void */ function gfDebugLog($obj) { ...(略) }
ただ、この関数の中身は「print_r($obj, true)」を引数にして「gfPrintLog()」を呼び出しているだけなので、「GC_Utils::gfPrintLog(print_r($obj, true))」として出力しても良いと思います。
お役に立ちましたでしょうか。
2011-12-19