Ticket #1395 (assigned 改善提案) — at Version 3
フロント用のアプリログ出力関数
| Reported by: | habu | Owned by: | habu |
|---|---|---|---|
| Priority: | 低 | Milestone: | EC-CUBE2.11.2 |
| Component: | フロント | Version: | 2.11.1 |
| Keywords: | Cc: | ||
| 修正済み: | yes |
Description (last modified by habu) (diff)
管理画面のアプリケーションログは、GC_Utils_Ex::gfPrintLog 関数で出力できるが、
フロント画面のアプリログ出力は、専用の関数が無く、以下の様にして出力するしかない。
GC_Utils_Ex::gfPrintLog("ログメッセージ", CUSTOMER_LOG_REALFILE );
会員ID等を付与してログ出力する、フロント画面用のアプリログ出力関数が欲しい。
#また、簡便にフロントのアプリログを出力できる様になれば、
ソース中にログ出力箇所も増えていき、
不具合発生時の調査(トレース)が行い易くなるものと期待される。
関連チケット: #149
Change History
comment:1 Changed 15 years ago by habu
- Owner changed from somebody to habu
- 修正済み set
- Status changed from new to assigned
comment:2 Changed 15 years ago by habu
出力されるログのフォーマットは以下の通りです:
(顧客IDは、LC_Page::log()を利用した場合のみ出力)
日時 [呼び出しファイルパス] クラス名::関数(行数) メッセージ user=顧客ID from 接続元IPアドレス
実例:
お届け先指定時のログ
2011/07/04 16:47:01 [html/shopping/deliv.php] LC_Page_Shopping_Deliv::registerDeliv(116) register deliv. deliv_check=15 user=6 from 192.168.1.171
注文完了時のログ
2011/07/04 16:47:19 [html/shopping/confirm.php] SC_Helper_Purchase::completeOrder(160) order complete. customerId=6 from 192.168.1.171
Note: See
TracTickets for help on using
tickets.

r21013 でとりあえず実装してみました。
バックトレースから、 ログ出力関数呼び出し元のクラス名・関数名・行数を取得して メッセージの前に自動で付与する様にしています。
GC_Utils_Ex::gfFrontLog("メッセージ");でログ出力できます。
また、LC_Pageクラスを継承しているクラス内では、
$this->log("メッセージ");でログ出力できます。
この場合、ログイン中ユーザの顧客IDも含めてログ出力します。