iT邦幫忙

2025 iThome 鐵人賽

DAY 14
0
Software Development

《電商修仙術:AI × Magento 開發心法》系列 第 14

[Day 14] Magento 開發小技巧:如何加 Log 並查看 Log

  • 分享至 

  • xImage
  •  

前言

之前有說過,在還沒有 AI 的時代,我開發都是這樣做的:
👉 先猜測我們要找的功能可能會在哪個模組?
👉 然後在程式裡加 log,一個一個慢慢 trace 下去。

現在年代已經不一樣了,我們可以請 AI 幫我們快速定位程式位置。
不過,加 log 依然是 Magento 開發最基本、最實用的除錯方式

今天就帶大家看看:Magento 的 log 要怎麼看?要怎麼加?


🐳 Step 1. 進入 Docker 容器

因為我們的 Magento 是用 docker-compose 架設的,所以第一步要先進容器。

假設服務名稱是 php,就可以輸入:

docker compose exec php bash

這樣我們就能進入容器內,開始操作。


Step 2. 查看 Magento Log

Magento 的 log 檔案會放在專案的 magento2/var/log/ 資料夾底下。
https://ithelp.ithome.com.tw/upload/images/20250914/20178403ySuZMmG8rG.jpg

常見的兩個檔案:

  • system.log → 一般開發時的 log
  • exception.log → 錯誤或例外

這邊推薦大家用這個指令來查看:

cd magento2
tail -f var/log/system.log

👉 好處是可以 即時看到 log 的輸出,不用一直重新打開檔案,非常方便。


Step 3. 在程式裡加 Log

最方便的方式就是:

\Magento\Framework\App\ObjectManager::getInstance()
    ->get('Psr\Log\LoggerInterface')
    ->info('你要 log 的東西');

這樣一跑,訊息就會出現在 system.log 裡。

⚠️ 正式開發時建議用 DI 注入 LoggerInterface
但在除錯階段,這個「偷吃步」方式超好用。


Step 4. 小小實戰

假設我們現在想找「進入首頁」的程式邏輯在哪。
通常我會這樣做:

  1. 先猜測可能的模組(例如 Magento_Cms)。
  2. 打開檔案架構,找到跟 Index 有關的 Controller。
  3. 在 Controller 的 execute() 方法裡,加上我們的 log。

像這樣:

$this->logger->info('進入首頁啦!');

接著回到前台首頁,刷新一下,就會在 system.log 裡看到:

[YYYY-MM-DD HH:MM:SS] main.INFO: 進入首頁啦!

但是,要注意!

有時候就算檔案看起來很對,卻不會印出 log。
這可能是因為:

  • 這個 class 被 preference 覆寫 了。
  • 或是被 plugin 攔截,流程根本沒跑到這裡。

所以光靠 log 一層一層 trace,真的會花掉很多時間。
但現在有了 AI,可以幫我們快速定位「哪裡才是實際執行的程式碼」。


Magento 常見 Log 對照表

Log 檔案位置 用途 什麼時候會用到
var/log/system.log 一般資訊 / 除錯訊息 開發時常用 $this->logger->info()debug()
var/log/exception.log 錯誤與例外訊息 程式丟出 Exception、無法捕捉的錯誤
var/report/ 錯誤報告(每個報告會有一個編號檔案) 當頁面出現「There has been an error processing your request」
var/log/debug.log (需啟用) 偵錯級別 log app/etc/env.php 開啟 debug 模式後,更多細節會寫這裡
var/log/custom.log (自訂) 自己定義的 log 可以用 MonologZend\Log 建立屬於自己的 log

結尾

今天我們學會了:

  • 怎麼進容器查看 Magento 的 log
  • 怎麼在程式裡加 log
  • 以及實戰 trace 的流程

加 log 是 Magento 開發中最基本的 Debug 技巧,雖然現在 AI 能幫我們加速,但 log 永遠是開發者手上最可靠的工具之一。


上一篇
[Day 13] Magento 常見指令大全:update 怎麼 update?
系列文
《電商修仙術:AI × Magento 開發心法》14
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言