Ticket #1395 (closed 改善提案: 修正済)

Opened 9 years ago

Last modified 9 years ago

フロント用のアプリログ出力関数

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 follow-up: ↓ 4 Changed 9 years ago by habu

  • Owner changed from somebody to habu
  • 修正済み set
  • Status changed from new to assigned

r21013 でとりあえず実装してみました。

バックトレースから、 ログ出力関数呼び出し元のクラス名・関数名・行数を取得して メッセージの前に自動で付与する様にしています。

GC_Utils_Ex::gfFrontLog("メッセージ");

でログ出力できます。

また、LC_Pageクラスを継承しているクラス内では、

$this->log("メッセージ");

でログ出力できます。
この場合、ログイン中ユーザの顧客IDも含めてログ出力します。

comment:2 Changed 9 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

comment:3 Changed 9 years ago by habu

  • Description modified (diff)

comment:4 in reply to: ↑ 1 ; follow-up: ↓ 5 Changed 9 years ago by Seasoft

便利そうですね。LC_Page_Admin#log も実装があると、スマートかなと感じました。

若干懸念しているのは、customer.log を使い回している点です。こちらはオブザベーションログ的な役割があるのかと思っています。(実際のところよく解っていませんが…) トレース・デバッグ用途としては、front.log や admin.log といった分かりやすいものを追加しても良さそうと感じました。

comment:5 in reply to: ↑ 4 Changed 9 years ago by habu

Seasoft への返信

便利そうですね。LC_Page_Admin#log も実装があると、スマートかなと感じました。

確かにそうですね! r21027 , r21028 にて実装しました。

若干懸念しているのは、customer.log を使い回している点です。こちらはオブザベーションログ的な役割があるのかと思っています。(実際のところよく解っていませんが…) トレース・デバッグ用途としては、front.log や admin.log といった分かりやすいものを追加しても良さそうと感じました。

こちらも、仰る通りですね。 出力先を site.log に変更しました。 (site.logは、管理画面からも確認できるためです)

管理画面から設定できる項目をひとつ増やしても良いものか悩んだので、 とりあえず、管理画面もフロント画面も同じログに出力する様にしています フロント画面のログを別ファイルにしたい場合に、変更しやすい作りにはしています。

comment:6 Changed 9 years ago by kajiwara

  • Priority changed from to

本来はsite.logではないログに分けた方がよさそうですね。

ただ、今回のバージョンに入れても問題なさそうですので、特に反対がなければ、本仕様で入れてみたいと思います。

今後、必要であれば修正するというぐらいで問題ないと思います。

comment:7 Changed 9 years ago by kajiwara

  • Status changed from assigned to closed
  • Resolution set to 修正済

こちらでクローズします。

Note: See TracTickets for help on using tickets.