在 ServBay 中查看日誌檔案:除錯與故障排除指南
在網頁開發與伺服器管理過程中,日誌檔案扮演著診斷問題、監控效能及瞭解應用行為的關鍵角色。ServBay 作為一套強大的本地網頁開發環境,整合多種套件(如網頁伺服器、資料庫、程式語言直譯器等),並為這些套件提供集中式日誌管理功能。
本文將詳細說明在 ServBay 中檢視日誌檔案的兩種主要方法:透過 macOS 終端命令列及利用 ServBay 的圖形使用者介面 (GUI)。熟悉這些方式可大幅提升您在 ServBay 環境下的除錯與故障排除效率。
適用讀者: 使用 ServBay 進行本地開發的網站工程師,技術棧涵蓋 PHP、Node.js、Python、Go、Java、Ruby、Rust、.NET、資料庫(MySQL、PostgreSQL、MongoDB、MariaDB)、快取服務(Redis、Memcached)、網頁伺服器(Caddy、Nginx、Apache)等。
日誌檔案的重要性
為什麼日誌檔案如此重要?
- 錯誤診斷: 應用程式或伺服器異常中斷、設定錯誤、權限問題等,通常會在日誌中留下詳細的錯誤資訊。
- 行為分析: 瞭解用戶請求、伺服器回應、資料庫查詢等,幫助優化效能並識別異常行為。
- 安全稽核: 日誌可記錄潛在的安全事件或未經授權的存取行為。
- 效能監控: 部分日誌會記錄請求處理時間、資源使用狀況等效能數據。
ServBay 將所有套件日誌集中管理,方便開發者快速查閱。
ServBay 日誌檔案的存放位置
ServBay 的所有日誌檔案統一存放於下列目錄:
/Applications/ServBay/logs
該目錄下包含 ServBay 本身及所有已安裝與執行中的套件(例如 PHP、Caddy、Nginx、MySQL、PostgreSQL、Redis 等)之日誌檔案,通常依套件類型或版本區分子目錄。
方法一:透過 macOS 終端機存取日誌檔案
對熟悉命令列的開發者而言,直接在終端機檢視日誌檔案提供極大彈性與強大的文字處理能力(如利用 grep
過濾、tail -f
實時監控)。
1. 開啟終端機應用程式
在 macOS 上打開「終端機」應用程式。
2. 進入 ServBay 日誌目錄
透過 cd
指令切換至 ServBay 的日誌目錄:
cd /Applications/ServBay/logs
3. 列出日誌檔案與目錄結構
在日誌目錄下,使用 ls
指令可查看所有可用日誌檔案及子目錄:
ls -l
您將看到類似以下結構的列表(實際內容依據已安裝和啟用的套件而異):
caddy/
dnsmasq.log
mailpit.log
mariadb/
memcached.log
mongodb/
mysql/
nginx/
apache/
php/
|____5.6/
|____7.0/
|____7.1/
|____7.2/
|____7.3/
|____7.4/
|____8.0/
|____8.1/
|____8.2/
|____8.3/
|____8.4/
postgresql/
redis.log
xdebug/
|____5.6/
|____7.0/
|____7.1/
|____7.2/
|____7.3/
|____7.4/
|____8.0/
|____8.1/
|____8.2/
|____8.3/
|____8.4/
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
4. 檢視特定日誌檔案內容
您可以利用標準命令列工具(如 cat
、less
、tail
)讀取日誌檔案內容。
cat <檔案名稱>
:一次顯示全部內容(適用於小型檔案)。less <檔案名稱>
:分頁瀏覽,支援搜尋和滾動(適用於大型檔案)。tail -f <檔案名稱>
:即時顯示最新內容,非常適合監控運行時錯誤或事件。
範例:
檢視 PHP 8.3 的 FPM 日誌:
bashcat php/8.3/php-fpm.log # 或者分頁檢視 less php/8.3/php-fpm.log # 或即時監控最新日誌 tail -f php/8.3/php-fpm.log
1
2
3
4
5檢視 Caddy Web 伺服器的錯誤日誌: Caddy 日誌通常位於
caddy
子目錄。請先進入該目錄,再檢視具體檔案。bashcd caddy ls # 查看日誌檔案名稱,如 error.log tail -f error.log
1
2
3檢視 Nginx Web 伺服器的錯誤日誌: Nginx 日誌通常位於
nginx
子目錄。bashcd nginx ls # 查看日誌名稱,如 error.log, access.log tail -f error.log
1
2
3檢視 MySQL 8 的日誌: MySQL 日誌通常位於
mysql
子目錄。bashcd mysql ls # 查看日誌名稱,如 error.log, slow.log tail -f error.log
1
2
3檢視 PostgreSQL 日誌: PostgreSQL 日誌通常在
postgresql
子目錄。bashcd postgresql ls # 查看日誌檔案名稱 tail -f postgresql.log
1
2
3檢視 Redis 日誌:
bashtail -f redis.log
1
5. 使用 grep
過濾日誌內容
當日誌內容龐大時,grep
指令是搜尋特定資訊的利器。
範例:
在 PHP 8.3 日誌中搜尋所有包含 "error" 的行:
bashgrep "error" php/8.3/php-fpm.log
1於 Caddy 錯誤日誌中過濾特定請求錯誤:
bashtail -f caddy/error.log | grep "servbay.demo"
1
結合 tail -f
與 grep
,即可高效即時監控並僅顯示你關注的日誌條目。
方法二:透過 ServBay 圖形使用者介面 (GUI)
對不習慣命令列的開發者而言,ServBay GUI 提供便利圖形化操作,可直接檢視指定套件或網站日誌。
1. 啟動 ServBay 應用程式
在 macOS 的「應用程式」資料夾中找到 ServBay 圖示,雙擊啟動程式。
2. 透過 GUI 檢視日誌
ServBay 於多個面板中設置快速檢視日誌入口:
透過「總覽 (Dashboard)」面板
啟動 ServBay 後,預設進入「總覽」面板。在「快速服務管理」區,每個已安裝或啟動中套件旁會有一個日誌圖示(形似文件)。點擊該圖示即可直接開啟該套件的日誌檔案。
圖示:於總覽面板快速檢視日誌
透過「套件 (Packages)」面板
- 在 ServBay GUI 左側選單中切換至「套件」面板。
- 套件列表介面中,每個套件右側亦會顯示日誌圖示。點擊即可開啟對應套件日誌檔案。
圖示:於套件面板檢視日誌
透過「網站 (Websites)」面板
- 於 ServBay GUI 左側選單進入「網站」面板。
- 網站列表畫面中,各網站設定右側皆有日誌圖示。點擊後通常會開啟該網站對應之網頁伺服器(如 Caddy、Nginx、Apache)存取日誌或錯誤日誌,有助於追查特定網站的問題。
圖示:於網站面板快速檢視網站相關日誌
透過「套件設定 (Package Configs)」面板
- 左側選單進入「套件設定」面板。
- 選擇要設定的套件(如 PHP 8.3)。進入設定細節畫面後,右上角通常亦有一個日誌圖示。點擊後可檢視該特定版本套件之日誌。
圖示:於套件設定面板檢視日誌
透過 GUI 檢視日誌的優點是直觀便利,無須記憶檔案路徑與指令,適合快速瀏覽目前狀態或最近錯誤。
常見 ServBay 日誌檔案與其用途
瞭解不同日誌檔案的目的,可協助您更快速地定位問題:
/Applications/ServBay/logs/caddy/
:包含 Caddy 網頁伺服器日誌,通常有access.log
(紀錄所有請求)及error.log
(紀錄伺服器錯誤)。/Applications/ServBay/logs/nginx/
:包含 Nginx 伺服器日誌,包含access.log
與error.log
。/Applications/ServBay/logs/apache/
:收錄 Apache 伺服器的access.log
及error.log
。/Applications/ServBay/logs/php/<版本號>/php-fpm.log
:紀錄 PHP-FPM 行程管理器之運作狀態、啟動錯誤及 PHP 腳本執行時產生錯誤(若 PHP 錯誤日誌指定為此)。/Applications/ServBay/logs/mysql/error.log
:紀錄 MySQL 資料庫伺服器啟動、關閉與運行時錯誤、警告及異常訊息。/Applications/ServBay/logs/mysql/slow.log
:紀錄執行時間超過特定門檻的 SQL 查詢(需啟用設定)。/Applications/ServBay/logs/mariadb/error.log
:列出 MariaDB 資料庫伺服器的錯誤和狀態訊息,類似於 MySQL。/Applications/ServBay/logs/postgresql/postgresql.log
:紀錄 PostgreSQL 資料庫伺服器之各類事件,包含連線、查詢錯誤、設定問題等。/Applications/ServBay/logs/mongodb/mongodb.log
:紀錄 MongoDB 資料庫的啟動、連線、複製、分片與執行時錯誤等。/Applications/ServBay/logs/redis.log
:紀錄 Redis 鍵值資料庫啟動資訊、配置載入、持久化及運行異常等。/Applications/ServBay/logs/memcached.log
:記載 Memcached 快取服務的啟動及運作資訊。/Applications/ServBay/logs/mailpit.log
:紀錄 Mailpit 郵件捕獲工具的運作狀態與收到郵件資訊。/Applications/ServBay/logs/xdebug/<版本號>/
:包含 XDebug 除錯器日誌檔,紀錄除錯會話資訊(如已啟用設定)。/Applications/ServBay/logs/dnsmasq.log
:收錄 ServBay 內建 DNS(Dnsmasq)查詢解析紀錄,便於排查本地網域解析問題。
日誌檔案管理與清理
日誌檔案隨時間會逐漸累積並佔用大量硬碟空間。建議定期檢查日誌檔案大小並執行清除或歸檔動作。
您可用終端指令刪除不需要的舊日誌。例如,移除指定 PHP 錯誤日誌:
rm /Applications/ServBay/logs/php/7.4/php-fpm.log
重要提醒:
- 刪除任何日誌前,請確認不再需要相關資訊,或已完成必要備份。
- 若刪除仍在記錄中的日誌檔,可能導致目前行程無法續寫日誌,甚至影響服務運行。建議先停止相關服務再執行清除,或善用日誌輪替工具(ServBay 某些套件內建日誌輪替設定)。
總結
檢視與分析日誌檔案,是本地開發環境不可或缺的技能之一。ServBay 藉由統一日誌目錄架構與方便的圖形介面,極大簡化了此流程。不論您偏好命令列的靈活與強大功能,還是喜愛 GUI 的直覺便利,ServBay 都提供有效率的日誌查看方式。定期檢視主要服務日誌,將有助於快速診斷故障,維護本地開發環境穩定可靠。