みなさん、こんにちは、EC-CUBERの波多野です。
お待たせしました。
今回は、前回EC-CUBE2系のログ出力についてご紹介した際に、「またの機会にご紹介します」とコマーシャルしていた「EC-CUBE 3系、および4系のログ出力処理」についてご紹介いたします。
▼関連記事:EC-CUBE2系ログ出力について
https://ec-cuber.jp/news-column/column05/
前回ご紹介した記事です。宜しければこちらもご覧ください。
▼関連:EC-CUBE4系のご紹介
https://ec-cuber.jp/eccube4/
ログ出力で利用する関数
- log_emergency
システムは使用不可 - log_alert
直ちにアクションを起こす必要あり - log_critical
致命的な条件 - log_error
エラーを発生する条件 - log_warning
警告を発生する条件 - log_notice
通常の動作だが、特徴的な条件 - log_info
情報を与えるメッセージ - log_debug
デバッグ用のメッセージ
EC-CUBE 3系と4系では、ログ管理フレームワークであるMonologが使われています。表示レベルの定義はPHP標準の関数であるsyslogと共通です。
参照: Seldaek/monolog: Sends your logs to files, sockets, inboxes, databases and various web services https://github.com/Seldaek/monolog PHP: syslog - Manual https://www.php.net/manual/ja/function.syslog.php
EC-CUBEのプログラム内で呼ばれるのは、ほとんどが log_info になります。
ログの出力先は3系と4系で若干異なります。以下の通りです。
YYYY-MM-DDは、ログの出力日付と置き換えてください。
3系
- 管理画面: {EC-CUBEディレクトリ}/app/log/admin_site_YYYY-MM-DD.log
- フロント: {EC-CUBEディレクトリ}/ap/log/front_site_YYYY-MM-DD.log
4系
- 本番環境の場合
管理画面: {EC-CUBEディレクトリ}/var/log/prod/admin-YYYY-MM-DD.log
フロント: {EC-CUBEディレクトリ}/var/log/prod/front-YYYY-MM-DD.log - 開発環境の場合
管理画面: {EC-CUBEディレクトリ}/var/log/dev/admin-YYYY-MM-DD.log
フロント: {EC-CUBEディレクトリ}/var/log/dev/front-YYYY-MM-DD.log
最後に、注文完了時に出力されるログを見てみましょう。
(実際は、この他に決済処理や受注メール等に関するログも出力されますが、比較のために注文完了に関するもののみ抜粋しています)
3系
[2020-09-04 19:02:36,020363] front.INFO [1073876c] [87648dba] [1] [ShoppingController:complete:355] - 購入処理完了 [10] [GET, /index.php/shopping/complete, 127.0.0.1, http://127.0.0.1/index.php/shopping, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36]
4系
[2020-09-04 19:01:47] front.INFO [ed0b6cee] [2b0877d] [2] [Eccube\Log\Logger:log:66] - [注文処理] 注文処理が完了しました. 購入完了画面へ遷移します. [1] [POST, /ec-cube/index.php/shopping/checkout, 127.0.0.1, http://127.0.0.1/ec-cube/index.php/shopping/confirm, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36]
おおまかに、出力内容は
- 実行時刻
- チャネル名(front、admin 等)
- ログレベル(DEBUG、INFO 等)
- セッションID
- ユニークID(サーバ実行時に生成されるuniqid)
- クラス名、関数名、ログ出力行番号
- メッセージ(「購入処理完了」等)
- context(メッセージ出力時のオプション)
- extra(Monologの機能であるProcessorを用いてログの拡張を行った場合、Processorによって渡された出力内容)
- HTTPメソッド
- ログ呼び出し時のURL
- ユーザのIPアドレス
- HTTPリファラー
- ユーザエージェント
以上になります。
参照: ログ出力設定 | EC-CUBE 3.0 開発ドキュメント https://doc.ec-cube.net/guideline_log
今後の開発作業、バグ調査等の際に、どうぞお役立てください。
以上、最後までお読みいただきありがとうございました。
EC-CUBEのことなら、弊社に何でもご相談・お任せください!
▼まずはサービス紹介資料を無料でDLしてみる。
https://ec-cuber.jp/eccube4-download/
▼問合せフォームから相談してみる。
https://ec-cuber.jp/contact-us/
▼電話で相談してみる。
03-6386-3652